已经有一个答案向您展示如何使用GSON 将JSON 转换为POJO,反之亦然。虽然从我的角度来看这是首选方法,但是您也可以使用 GSON 仅将元素添加到 json 数组。
假设你的 json 数组字符串如下:
String myJsonArray = "["
+ "{\"name\":\"alex\",\"weight\":\"88\"},"
+ "{\"name\":\"Emma\",\"weight\":\"71\"}"
+ "]";
初始化Gson对象如下图:
Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
将你的json字符串数组转换为JsonElement如下图:
JsonElement elements = gson.fromJson(myJsonArray, JsonElement.class);
一旦你有了JsonElement,它就包含了你的json数组,那么你可以将它转换为JsonArray,如下所示:
JsonArray arr = elements.getAsJsonArray();
现在您的数组为JsonArray,您可以通过遍历元素将它们打印出来,如下所示:
for(JsonElement e: arr) {
System.out.println(e);
}
这会给你(基于上面的字符串):
{"name":"alex","weight":"88"}
{"name":"Emma","weight":"71"}
假设您想在现有数组中添加一个新对象,但是您有以下 json 字符串形式的对象:
String newObject = "{\"name\":\"Raf\", \"weight\":\"173\"}";
//Creates new JsonElement from json string
JsonElement newElement = gson.fromJson(newObject, JsonElement.class);
现在您可以将此元素添加到现有数组中,如下所示:
arr.add(newElement);
最后你可以像我们之前那样打印你的新 json 数组了:
for(JsonElement e: arr) {
System.out.println(e);
}
你得到的输出是
{"name":"alex","weight":"88"}
{"name":"Emma","weight":"71"}
{"name":"Raf","weight":"173"}