在此示例中,我们将使用JSON-Java(org.json)库读取或解析JSON文件。首先,我们开始InputStream使用getResourceAsStream()方法读取JSON文件。接下来,我们JSONTokener从输入流构造一个,并创建一个实例JSONObject来读取JSON条目。
我们可以用这样的方法getString(),getInt(),getLong(),等来读取JSON文件的键值。该getJSONArray()方法允许我们读取JSONArray对象中返回的值的列表。可以对其进行迭代以获取键表示的每个值。让我们看看下面的详细代码片段。
package org.nhooo.example.json;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
import java.io.InputStream;
public class ReadJSONString {
public static void main(String[] args) {
// info.json
// {
// “培训班”: [“培训班”: [“年龄”:“ 20”,“年龄”:“ 20”,“ name”:“ Alice”,“ name”:“ Alice”,“ id”:“ 1”,"id": "1",
// “培训班”: [“培训班”: [“年龄”:“ 20”,“年龄”:“ 20”,“ name”:“ Alice”,“ name”:“ Alice”,“ id”:“ 1”,"name": "Alice",
// “培训班”: [“培训班”: [“年龄”:“ 20”,“年龄”:“ 20”,“ name”:“ Alice”,“ name”:“ Alice”,“ id”:“ 1”,"age": "20",
// “培训班”: [“培训班”: [“年龄”:“ 20”,“年龄”:“ 20”,“ name”:“ Alice”,“ name”:“ Alice”,“ id”:“ 1”,"courses": [
// “培训班”: [“培训班”: [“年龄”:“ 20”,“年龄”:“ 20”,“ name”:“ Alice”,“ name”:“ Alice”,“ id”:“ 1”, "Engineering",
// “培训班”: [“培训班”: [“年龄”:“ 20”,“年龄”:“ 20”,“ name”:“ Alice”,“ name”:“ Alice”,“ id”:“ 1”, "Finance",
// “培训班”: [“培训班”: [“年龄”:“ 20”,“年龄”:“ 20”,“ name”:“ Alice”,“ name”:“ Alice”,“ id”:“ 1”, "Chemistry"
// “培训班”: [“培训班”: [“年龄”:“ 20”,“年龄”:“ 20”,“ name”:“ Alice”,“ name”:“ Alice”,“ id”:“ 1”,]
//}
String resourceName = "/info.json";
InputStream is = ReadJSONString.class.getResourceAsStream(resourceName);
if (is == null) {
throw new NullPointerException("Cannot find resource file " + resourceName);
}
JSONTokener tokener = new JSONTokener(is);
JSONObject object = new JSONObject(tokener);
System.out.println("Id : " + object.getLong("id"));
System.out.println("Name: " + object.getString("name"));
System.out.println("Age : " + object.getInt("age"));
System.out.println("Courses: ");
JSONArray courses = object.getJSONArray("courses");
for (int i = 0; i < courses.length(); i++) {
System.out.println(" - " + courses.get(i));
}
}
}上面的代码片段的结果是:
Id : 1 Name: Alice Age : 20 Courses: - Engineering - Finance - Chemistry
Maven依赖
<!-- https://repo1.maven.org/maven2/org/json/json/20180813/json-20180813.jar --> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20180813</version> </dependency>