java中JsonReader和JsonParse之间的区别是什么

java中JsonReader和JsonParse之间的区别是什么,java,json,Java,Json,我已经看到,它们都用于json文件的红色键值对。例如: 使用JsonParser读取JSON文件的键值: try { // read the json file FileReader reader = new FileReader(filePath); JSONParser jsonParser = new JSONParser(); JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);

我已经看到,它们都用于json文件的红色键值对。例如:

使用JsonParser读取JSON文件的键值:

try {
    // read the json file
    FileReader reader = new FileReader(filePath);

    JSONParser jsonParser = new JSONParser();
    JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);

    // get a String from the JSON object
    String firstName = (String) jsonObject.get("firstname");
    System.out.println("The first name is: " + firstName);

    // get a number from the JSON object
    long id =  (long) jsonObject.get("id");
    System.out.println("The id is: " + id);

    // get an array from the JSON object
    JSONArray lang= (JSONArray) jsonObject.get("languages");

    // take the elements of the json array
    for(int i=0; i<lang.size(); i++){
        System.out.println("The " + i + " element of the array: "+lang.get(i));
    }

    Iterator i = lang.iterator();

    // take each value from the json array separately   
    while (i.hasNext()) {
        JSONObject innerObj = (JSONObject) i.next();
        System.out.println("language "+ innerObj.get("lang") +
            " with level " + innerObj.get("knowledge"));
    }

    // handle a structure into the json object
    JSONObject structure = (JSONObject) jsonObject.get("job");
    System.out.println("Into job structure, name: " + structure.get("name"));
}
try
{
    InputStream isr=new FileInputStream("
        C:\\Users\\DELL\\Documents\\NetBeansProjects\\WaterNetwork
        \\web\\kusha.json"); 
    JsonReader jsr=Json.createReader(isr);
    JsonObject job=jsr.readObject();
    jsr.close();
    isr.close();
    System.out.println("Name is: "+job.getString("name"));
}

我在网上搜索了一下,但到现在还没有得到任何有用的答案。因此,我想全面解释一下java中JsonReader和JsonParser的工作原理和区别。

顾名思义,JsonReader用于识别和读取以字符串或流形式存在的JSON对象,然后在返回之前将其转换为适当的JSON对象

您无法解析JSON对象,也就是说,无法使用getter从JSON对象提取值来读取对象下的值和数组,也就是说,您可能从JSONReader对象获取值

但这都是抽象的,因为我们在这里讨论的是接口。
查看这两个函数中的可用函数,以获得一些清晰性。

我假设,正如名称所示,读取器允许您在循环中逐行读取,而解析器只是将整个JSON对象解析为Java数组或对象或其他内容