您的位置:

深入理解Java Json数组

一、Json数组基础概述

Json数组是一组有序的值集合。每一个值被称为元素,数组中的元素可以是字符串、数字、bool值、对象或者是其他的数组。Json数组用中括号[]包含,元素之间用逗号隔开。

下面是一个例子:

[
  "Java",
  123,
  true,
  {
    "name": "Tom",
    "age": 20
  }
]

上面的例子包含了字符串、整数、布尔值和一个Json对象。

二、创建Java Json数组

Java中使用org.json库来操作Json数组。创建Json数组非常简单,只需要使用JSONArray类的构造方法即可。

JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);

上述代码创建了一个空的Json数组,然后依次添加了一个字符串、一个整数和一个布尔值。

三、访问Java Json数组

Java Json数组的元素访问可以使用get()或者opt()方法。get()方法将会抛出异常,但是opt()方法在索引越界时不会抛出异常,而是返回一个空值。

JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);

String strValue = jsonArray.getString(0);   // 获取第一个元素的字符串值
int intValue = jsonArray.getInt(1);         // 获取第二个元素的整型值
boolean boolValue = jsonArray.getBoolean(2); // 获取第三个元素的布尔值

四、遍历Java Json数组

Java Json数组的遍历可以使用for循环或者是迭代器来进行。下面是一个使用for循环来遍历Json数组的例子。

JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);

for(int i = 0; i < jsonArray.length(); i++) {
  Object obj = jsonArray.get(i);
  System.out.println(obj.toString());
}

五、操作Java Json数组

Java Json数组支持的操作包括添加、删除、清空和判断是否包含某元素等。

(1)添加元素

JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);

JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "Tom");
jsonObject.put("age", 20);

jsonArray.put(jsonObject);   // 添加Json对象元素

(2)删除元素

JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);

jsonArray.remove(2);  // 删除第三个元素,布尔值true

(3)清空数组

JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);

jsonArray.clear();  // 清空数组中所有元素

(4)判断是否包含元素

JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);

boolean contains = jsonArray.contains(true); // 判断数组中是否包含true元素

六、Java Json数组与Java对象的转换

Java对象可以转换成Json对象或者Json数组,同样的,Json对象和Json数组也可以转换成Java对象。

(1)Java对象转换成Json数组

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");

JSONArray jsonArray = new JSONArray(list);  // 将list转换成Json数组

(2)Json对象转换成Java对象

String jsonString = "{"name":"Tom","age":20}";
JSONObject jsonObject = new JSONObject(jsonString);

// 将Json对象转换成Java对象
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");

七、Java Json数组与Json字符串的互相转换

Java Json数组和Json字符串之间的转换非常简单,只需要调用对应的方法即可。

(1)Java Json数组转换成Json字符串

JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);

String jsonString = jsonArray.toString(); // 将Json数组转换成Json字符串

(2)Json字符串转换成Java Json数组

String jsonString = "["Java",123,true]";
JSONArray jsonArray = new JSONArray(jsonString);  // 将Json字符串转换成Json数组

八、总结

本文对Java Json数组进行了深入的讲解,介绍了Json数组的基础概念、创建、访问、遍历、操作以及Json数组与Java对象、Json字符串之间的互相转换等方面的内容。希望能够对读者在实践中操作Json数组有所帮助。