This question already has answers here:
Convert a String to a byte array and then back to the original String

(4个答案)


4年前关闭。




我正在使用AWS JSONObject class。假设我定义了一个JSONObject对象,如下所示:
JSONObject obj = new JSONObject();
obj.put("Field1": 35);

JSONObject nestedObj = new JSONObject();
nestedObj.put("Name1":"value1");
nestedObj.put("Name2":42);

obj.put("Field2": nestedObj);

因此,JSONObject看起来像:
{"Field1": 35,
 "Field2": {"Name1": "value1",
            "Name2": 42}
}

我想将这个JSONObject转换为某种字节数组:
byte[] objAsBytes = convertToBytes(obj);

其中convertToBytes是可以正确执行此操作的某些函数。然后,我想获取此字节数组并将其转换回原始的JSONObject,以便它仍保留其原始结构。

有谁知道如何做到这一点?我想这样做是因为我正在使用Amazon Kinesis,更具体地说是PutRecord API,而PutRecordRequest要求数据为ByteBuffer,因此我需要将JSONObject转换为字节数组,然后将字节数组包装为ByteBuffer 。然后,当我检索记录时,我需要将ByteBuffer转换为字节数组,然后获取原始的JSONObject。

最佳答案

这个怎么样?

byte[] objAsBytes = obj.toString().getBytes("UTF-8");

我使用Json.simple进行了尝试,似乎可以正常工作!

关于java - 如何将JSONObject转换为字节数组,然后将该字节数组转换为取回原始JSONObject? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36560223/

10-15 09:48