一、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()方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237724.html