【问题标题】:How can I read from a JSON file using the javax.json package?如何使用 javax.json 包从 JSON 文件中读取?
【发布时间】:2017-02-08 17:51:27
【问题描述】:

我相信我需要创建一个 JsonReader 对象并调用其中一个 Json 静态方法,但我无法从我的 file.json 读取。

似乎创建阅读器方法要求输入为字符串。我应该继续尝试将我的整个 JSON 文件解释为字符串吗?

【问题讨论】:

    标签: java json parsing


    【解决方案1】:

    假设您有包含此类 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());
            }
        }
    }
    

    也可以参考这个问题:From JSON String to Java Object using javax.json

    【讨论】:

    • 非常感谢。我想我会尝试使用 Gson,因为它似乎更强大。 Gson 中是否有 InputStream fis = new FileInputStream("file.json"); 的等价物? ?
    • @ekeen4 如果需要Gson示例,请参考Parse JSON file using GSON
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多