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

时间:2016-04-11 22:14:08

标签: java json amazon-web-services serialization bytearray

我正在使用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,所以我需要转换{{1}转换为字节数组,然后将字节数组包装为JSONObject。然后,当我检索记录时,我需要将ByteBuffer转换为字节数组,然后获取原始的JSONObject。

1 个答案:

答案 0 :(得分:5)

这个怎么样?

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

我使用Json.simple来试用它,似乎有效!