我已经看到它们都用于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"));
}
使用JsonReader读取JSON文件的键和值:
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之间的工作和差异做一个完整的解释。
答案 0 :(得分:0)
顾名思义,JsonReader用于识别和读取作为字符串或流呈现的JSON对象,然后在返回之前将其转换为适当的JSON对象。
您无法解析 JSON对象,也就是说,无法使用getter从JSON对象中提取值来读取对象下的值和数组,例如,您可能从JSONReader对象获取。 / p>
但这是抽象的,因为我们在这里谈论接口。 查看两者中可用的功能以获得一些清晰度。