从json文件中读取

时间:2014-06-22 23:03:11

标签: java arrays json

我正在尝试从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);
         }

     }

} 

1 个答案:

答案 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);

希望它有所帮助!