美好的一天!
我有一个像这样的json对象数组:
[{
"senderDeviceId":0,
"recipientDeviceId":0,
"gmtTimestamp":0,
"type":0
},
{
"senderDeviceId":0,
"recipientDeviceId":0,
"gmtTimestamp":0,
"type":4
}]
由于某些原因,我需要拆分每个元素并保存到存储。最后我有很多像
这样的对象{ "senderDeviceId":0,
"recipientDeviceId":0,
"gmtTimestamp":0,
"type":0
}
{
"senderDeviceId":0,
"recipientDeviceId":0,
"gmtTimestamp":0,
"type":4
}
一段时间后,我需要将它们中的一些组合成json数组。 正如我所看到的 - 我可以从存储中获取对象,使用Gson将它们转换为对象,将对象转换为列表,如下所示:
String first = "..."; //{"senderDeviceId":0,"recipientDeviceId":0,"gmtTimestamp":0,"type":0}
String second = "...";//{"senderDeviceId":0,"recipientDeviceId":0,"gmtTimestamp":0,"type":4}
BaseMessage msg1 = new Gson().fromJson(first, BaseMessage.class);
BaseMessage msg2 = new Gson().fromJson(second, BaseMessage.class);
List<BaseMessage> bmlist = new ArrayList<>();
bmlist.add(msg1);
bmlist.add(msg2);
//and then Serialize to json
但我想这不是最好的方法。有没有办法将许多json-strings组合成json数组?我匆匆这样做了:
JsonElement elementTm = new JsonPrimitive(first);
JsonElement elementAck = new JsonPrimitive(second);
JsonArray arr = new JsonArray();
arr.add(elementAck);
arr.add(elementTm);
但是JsonArray给了我带json的转义字符串 - 就像这样 -
["{
\"senderDeviceId\":0,
\"recipientDeviceId\":0,
\"gmtTimestamp\":0,
\"type\":4
}","
{
\"senderDeviceId\":0,
\"recipientDeviceId\":0,
\"gmtTimestamp\":0,
\"type\":0
}"]
我该怎么做? 谢谢。
答案 0 :(得分:1)
冒着让事情变得简单的风险:
String first = "...";
String second = "...";
String result = "[" + String.join(",", first, second) + "]";
为您保存反序列化/序列化循环。