一、JsonArray排序
JsonArray jsonArray = new JsonParser().parse(jsonStr).getAsJsonArray();
List<JsonObject> list = new ArrayList<>();
for (JsonElement element : jsonArray) {
list.add(element.getAsJsonObject());
}
Collections.sort(list, new Comparator<JsonObject>() {
@Override
public int compare(JsonObject o1, JsonObject o2) {
return o1.get("id").getAsInt() - o2.get("id").getAsInt();
}
});
JsonArray sortedJsonArray = new JsonArray();
for (JsonObject json : list) {
sortedJsonArray.add(json);
}
对JsonArray进行排序可以通过将其转化成List<JsonObject>进行排序,然后再转化回JsonArray。
二、JsonArray如何遍历
JsonArray jsonArray = new JsonParser().parse(jsonStr).getAsJsonArray();
for (JsonElement element : jsonArray) {
JsonObject jsonObject = element.getAsJsonObject();
String name = jsonObject.get("name").getAsString();
int age = jsonObject.get("age").getAsInt();
System.out.println(name + ": " + age);
}
遍历JsonArray可以使用foreach循环,将其中的JsonElement转化为JsonObject,再取出其中的JsonValue值。
三、JsonArray获取值
JsonArray jsonArray = new JsonParser().parse(jsonStr).getAsJsonArray();
JsonObject jsonObject = jsonArray.get(0).getAsJsonObject();
String name = jsonObject.get("name").getAsString();
int age = jsonObject.get("age").getAsInt();
System.out.println(name + ": " + age);
获取JsonArray中的值可以通过get()方法,其中参数为元素的下标。
四、取JsonArray的值
JsonArray jsonArray = new JsonParser().parse(jsonStr).getAsJsonArray();
int[] ages = new int[jsonArray.size()];
for (int i = 0; i < jsonArray.size(); i++) {
ages[i] = jsonArray.get(i).getAsJsonObject().get("age").getAsInt();
}
System.out.println(Arrays.toString(ages));
取出JsonArray中的某个Key对应的值可以通过getAsInt()、getAsBoolean()等方法进行取值,如果获取的值为数组则需要进行循环遍历取出。
五、JsonArray添加数据
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", "张三");
jsonObject.addProperty("age", 22);
JsonArray jsonArray = new JsonParser().parse(jsonStr).getAsJsonArray();
jsonArray.add(jsonObject);
System.out.println(jsonArray);
往JsonArray中添加数据可以通过先新建一个JsonObject,然后使用addProperty()方法添加需要的属性,最后使用add()方法将JsonObject添加到JsonArray中。
六、JsonArray获取长度
JsonArray jsonArray = new JsonParser().parse(jsonStr).getAsJsonArray();
int size = jsonArray.size();
System.out.println(size);
获取JsonArray的长度可以使用size()方法。