【发布时间】:2017-02-08 17:51:27
【问题描述】:
我相信我需要创建一个 JsonReader 对象并调用其中一个 Json 静态方法,但我无法从我的 file.json 读取。
似乎创建阅读器方法要求输入为字符串。我应该继续尝试将我的整个 JSON 文件解释为字符串吗?
【问题讨论】:
我相信我需要创建一个 JsonReader 对象并调用其中一个 Json 静态方法,但我无法从我的 file.json 读取。
似乎创建阅读器方法要求输入为字符串。我应该继续尝试将我的整个 JSON 文件解释为字符串吗?
【问题讨论】:
假设您有包含此类 JSON 数据的文件 person.json:
{
"name": "Jack",
"age" : 13,
"isMarried" : false,
"address": {
"street": "#1234, Main Street",
"zipCode": "123456"
},
"phoneNumbers": ["011-111-1111", "11-111-1111"]
}
使用javax.json可以这样解析文件:
public class Example {
public static void main(String[] args) throws Exception {
InputStream fis = new FileInputStream("person.json");
JsonReader reader = Json.createReader(fis);
JsonObject personObject = reader.readObject();
reader.close();
System.out.println("Name : " + personObject.getString("name"));
System.out.println("Age : " + personObject.getInt("age"));
System.out.println("Married: " + personObject.getBoolean("isMarried"));
JsonObject addressObject = personObject.getJsonObject("address");
System.out.println("Address: ");
System.out.println(addressObject.getString("street"));
System.out.println(addressObject.getString("zipCode"));
System.out.println("Phone : ");
JsonArray phoneNumbersArray = personObject.getJsonArray("phoneNumbers");
for (JsonValue jsonValue : phoneNumbersArray) {
System.out.println(jsonValue.toString());
}
}
}
【讨论】: