我正在尝试从json文件中读取并仅获取电话号码我正在使用java并使用库org.json.simple并且我收到错误消息
“线程中的异常”主“java.lang.ClassCastException:org.json.simple.JSONArray无法强制转换为org.json.simple.JSONObject 在Heatmap.main(Heatmap.java:21)“
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class Heatmap {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("c:\\clients.json"));
JSONObject jsonObject = (JSONObject) obj;
String phone = (String) jsonObject.get("Phone Number");
System.out.println(phone);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException ex) {
Logger.getLogger(Heatmap.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
答案 0 :(得分:0)
根据抛出的异常,我认为可能是clients.json它是一个数组,所以你应该有这样的东西:
Object obj = parser.parse(new FileReader("c:\\clients.json"));
JSONArray jsonArray = (JSONArray) obj;
JSONObject client= (JSONObject)jsonObject.get("0");
String phone = (String) client.get("Phone Number");
System.out.println(phone);
希望它有所帮助!