使用Java解析JSON文件时出错
我在解析以下JSON文件时遇到错误。如果有人能帮助我,我们将不胜感激使用Java解析JSON文件时出错,java,arrays,json,Java,Arrays,Json,我在解析以下JSON文件时遇到错误。如果有人能帮助我,我们将不胜感激 {"Name":"Abc", "Author":"fgd", "Company List":{"Company":"C1","Companyone":"Compa2"}} 这是我的密码:- JSONParser parser = new JSONParser(); try { Object obj = parser.parse(new FileReader("/Users/abcdefgh/Doc
{"Name":"Abc", "Author":"fgd", "Company List":{"Company":"C1","Companyone":"Compa2"}}
这是我的密码:-
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("/Users/abcdefgh/Documents/File1.txt"));
JSONObject jsonObject = (JSONObject) obj;
String name = (String) jsonObject.get("Name");
String author = (String) jsonObject.get("Author");
System.out.println("Name: " + name);
System.out.println("Author: " + author);
// JSONArray companyList= new JSONArray();
//companyList.add(obj);
JSONArray companyList = (JSONArray) jsonObject.get("Company List");
System.out.println("Company List:");
/* for (int i=0;i<2;i++){
System.out.println(companyList.get(i));
}
*/Iterator<String> iterator = companyList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
输出:-
姓名:Abc
作者:fgd
java.lang.ClassCastException:org.json.simple.JSONObject不能为空
转换为org.json.simple.JSONArray
com.selenium.test.JSONRead.mainJSONRead.java:29
companyList是一个JSON对象,而不是数组。这就是为什么会出现类强制转换异常。公司列表属性的属性类型是object,而不是数组 更换线路
JSONArray companyList = (JSONArray) jsonObject.get("Company List");
用于:
如果要获取值对于此对象,可以执行以下操作:
JSONObject companyList = jsonObject.getJSONObject("Company List");
String company = companyList.getString("Company");
记住,要获取JSONObject(数组)属性的值,必须使用该方法。谢谢,但是如何提取CompanyList组件呢?谢谢你的回复!。。使用getJSONObject,我能够成功地解析它。
JSONObject companyList = jsonObject.getJSONObject("Company List");
String company = companyList.getString("Company");