您的位置:

详解JsonArray

JsonArray是一种轻量级的数据交换格式,逐渐成为Web API传输数据的标准方式。本文将从各个方面详解JsonArray的使用,包括创建、添加、删除、修改等各种操作。

一、创建JsonArray

创建JsonArray最常用的方式是通过解析一个JSON字符串,使用JsonArray的构造函数来创建JsonArray对象。JsonArray也可以直接通过Java的构造函数创建一个空的JsonArray对象。同时,JsonArray对象也可以通过读取输入流或者从已有的集合创建。

String json = "[{\"name\":\"Tom\", \"age\":20}, {\"name\":\"Jerry\", \"age\":18}]";
JsonArray jsonArray = new JsonArray(json);
JsonArray jsonArrayEmpty = new JsonArray();
JsonArray jsonArrayFromList = new JsonArray(list);

二、添加元素

JsonArray和Java中的List非常相似,支持添加、删除、获取元素等操作。添加元素有两种方式,一种是使用JsonObject添加,一种是使用JsonPrimitive添加。

使用JsonObject添加元素的方式:

JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", "Lucy");
jsonObject.addProperty("age", 21);
jsonArray.add(jsonObject);

使用JsonPrimitive添加元素的方式:

JsonPrimitive jsonPrimitive = new JsonPrimitive(100);
jsonArray.add(jsonPrimitive);

三、获取元素

获取JsonArray中的元素非常简单,可以通过下标获取指定位置的元素,也可以通过迭代器遍历所有元素。

通过下标获取字符串类型的元素:

String name = jsonArray.get(0).getAsJsonObject().get("name").getAsString();
String age = jsonArray.get(0).getAsJsonObject().get("age").getAsString();

通过迭代器遍历JsonArray中的元素:

Iterator iterator = jsonArray.iterator();
while (iterator.hasNext()) {
    JsonElement element = iterator.next();
    System.out.println(element.toString());
}

  

四、修改元素

JsonArray修改元素的方式和List类似,可以通过下标设置指定位置的元素,也可以通过JsonObject中的add、remove、replace等方法修改元素。

通过下标修改元素:

jsonArray.set(1, new JsonPrimitive("hello"));

通过JsonObject中的方法修改元素:

jsonArray.get(0).getAsJsonObject().addProperty("name", "Jack");
jsonArray.get(0).getAsJsonObject().remove("age");
jsonArray.get(1).getAsJsonPrimitive().getAsInt();

五、删除元素

JsonArray删除元素同样支持两种方式,一种是通过下标删除指定位置的元素,一种是通过JsonObject中的remove方法删除指定的元素。

通过下标删除元素:

jsonArray.remove(0);

通过JsonObject中的remove方法删除元素:

jsonArray.get(0).getAsJsonObject().remove("name");

六、转化为字符串

需要将JsonArray转化为字符串可以使用JsonArray中的toString方法。这一点和其他Json相关的对象非常类似。

String jsonString = jsonArray.toString();

七、总结

本文详细阐述了JsonArray的创建、添加、获取、修改、删除以及转化为字符串的各种操作。JsonArray被广泛应用于Web API的数据交换,通过掌握JsonArray的使用,能够轻松编写出符合要求的Web API。