您的位置:

JsonArray取值详解

一、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()方法。