如何将JSONObject转换为字节数组,然后转换此字节数组以取回原始JSONObject?

Dre*_*rew 4 java serialization json bytearray amazon-web-services

我正在使用AWS JSONObject.假设我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);
Run Code Online (Sandbox Code Playgroud)

所以JSONObject看起来像:

{"Field1": 35,
 "Field2": {"Name1": "value1",
            "Name2": 42}
}
Run Code Online (Sandbox Code Playgroud)

我想采取这种方式JSONObject,并以某种方式将其转换为字节数组:

byte[] objAsBytes = convertToBytes(obj);
Run Code Online (Sandbox Code Playgroud)

哪个convertToBytes是正确执行此操作的函数.然后我想采用这个字节数组并将其转换回原始数据,JSONObject因此它仍保留其原始结构.

有谁知道如何做到这一点?我想这样做是因为我使用的是Amazon Kinesis,更具体地说是PutRecordAPI,并且PutRecordRequest要求数据是a ByteBuffer,所以我需要将其转换JSONObject为字节数组,然后将字节数组包装为ByteBuffer.然后,当我检索记录时,我需要将其转换ByteBuffer为字节数组,然后获取原始的JSONObject.

小智 5

这个怎么样?

byte[] objAsBytes = obj.toString().getBytes("UTF-8");
Run Code Online (Sandbox Code Playgroud)

我用Json.simple试了一下,似乎工作了!