在此示例中,我们将使用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>