如何使用 Java 读取/解析 JSON 数组?
javaobject oriented programmingprogramming更新于 2025/5/24 17:16:17
Json 数组是包含在方括号中的值的有序集合,即以 ‘[’ 开头并以 ‘]’ 结尾。数组中的值由 ‘,’(逗号)分隔。
示例 JSON 数组
{
"books": [ Java, JavaFX, Hbase, Cassandra, WebGL, JOGL]
}
json-simple 是一个轻量级库,用于处理 JSON 对象。使用此功能,您可以使用 Java 程序读取或写入 JSON 文档的内容。
JSON-Simple maven 依赖项
以下是 JSON-simple 库的 maven 依赖项 −
<dependencies> <dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> <version>1.1.1</version> </dependency> </dependencies>
将其粘贴到 pom.xml 文件末尾的 <dependencies> </dependencies> 标记中。(在 </project> 标记之前)
示例
首先,让我们创建一个名为 sample.json 的 JSON 文档,其中包含 6 个键值对和一个数组,如下所示 −
{
"ID": "1",
"First_Name": "Krishna Kasyap",
"Last_Name": "Bhagavatula",
"Date_Of_Birth": "1998-09-26",
"Place_Of_Birth":"Vishakhapatnam",
"Salary": "25000"
"contact": [
"e-mail: krishna_kasyap@gmail.com",
"phone: 9848022338",
"city: Hyderabad",
"Area: Madapur",
"State: Telangana"
]
}
使用 Java 程序从 JSON 文件中读取数组 −
- 实例化 json-simple 库的 JSONParser 类。
JSONParser jsonParser = new JSONParser();
- 使用 parse() 方法解析获取的对象的内容。
//解析 JSON 文件的内容
JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader("E:/players_data.json"));
- 使用 get() 方法检索与键关联的值。
String value = (String) jsonObject.get("key_name");
- 与其他元素一样,使用 get() 方法将 json 数组检索到 JSONArray 对象中。
JSONArray jsonArray = (JSONArray) jsonObject.get("contact");
- JSONArray 类的 iterator() 方法返回一个 Iterator 对象,您可以使用该对象迭代当前数组的内容。
//迭代数组的内容
Iterator<String> iterator = jsonArray.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
以下 Java 程序解析上面创建的 sample.json 文件,读取其内容并显示它们。
示例
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class ReadingArrayFromJSON {
public static void main(String args[]) {
//创建 JSONParser 对象
JSONParser jsonParser = new JSONParser();
try {
//解析 JSON 文件内容
JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader("E:/test.json"));
//形成 URL
System.out.println("Contents of the JSON are: ");
System.out.println("ID: "+jsonObject.get("ID"));
System.out.println("First name: "+jsonObject.get("First_Name"));
System.out.println("Last name: "+jsonObject.get("Last_Name"));
System.out.println("Date of birth: "+ jsonObject.get("Date_Of_Birth"));
System.out.println("Place of birth: "+ jsonObject.get("Place_Of_Birth"));
System.out.println("Salary: "+jsonObject.get("Salary"));
//检索数组
JSONArray jsonArray = (JSONArray) jsonObject.get("contact");
System.out.println("");
System.out.println("联系方式:");
//迭代数组内容
Iterator<String> iterator = jsonArray.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
}
输出
Contents of the JSON are: ID: 1 First name: Krishna Kasyap Last name: Bhagavatula Date of birth: 1998-09-26 Place of birth: Vishakhapatnam Salary: 25000 Contact details: e-mail: krishna_kasyap@gmail.com phone: 9848022338 city: Hyderabad Area: Madapur State: Telangana
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/
打印
下一节:Java 中何时会抛出 IllegalStateException(未检查)? ❯❮ 上一节:我们可以在 Java 中将 public static void main() 的顺序更改为 static public void main() 吗?

