如何从以下代码中的Json文件获取数据

时间:2013-11-04 10:59:55

标签: java json

我是json的新手,所以请帮我解决这个问题

propertyAlerts: [
{
    alertDomain: "oiq.core.alert.PropertyAlert",
    alertType: "HERITAGE_DETECTED",
    oiqCreatedDate: "2013-11-04 03:06:26"
}]

通过使用java,我想获得以下数据

OUTPUT:
alertDomain: "oiq.core.alert.PropertyAlert"
alertType: "HERITAGE_DETECTED"
oiqCreatedDate: "2013-11-04 03:06:26"

以下是我使用

public void checklicense(String filename) throws Exception
    {
JSONParser parser=new JSONParser();
Object obj = parser.parse(new FileReader("./output_profiles/"+filename));
JSONObject jsonObject = (JSONObject) obj;
JSONArray jsonMainArr = obj.getJSONArray("propertyalert"); 
JSONObject childJSONObject = jsonMainArr.getJSONObject(i);
     String alertDomain = childJSONObject.getString("alertDomain");

}

任何人都可以帮我解决这个问题

2 个答案:

答案 0 :(得分:0)

This教程解释了JSON解析的基础知识。

我建议你阅读整篇文章,因为这是你几乎每天都会在Android开发中做的事情。

答案 1 :(得分:0)

public static void checklicense(String filename) 
{
    try {
        JSONParser parser = new JSONParser();
        Object obj = parser.parse(new FileReader(filename));
        System.out.println(obj.getClass());
        JSONObject jsonObject = (JSONObject) obj;
        JSONArray jsonMainArr = (JSONArray) jsonObject.get("propertyAlerts");
        Iterator iterator = jsonMainArr.iterator();
        while(iterator.hasNext()) {
            jsonObject =(JSONObject) iterator.next();
            String alertDomain = (String) jsonObject.get("alertDomain");
            String alertType = (String) jsonObject.get("alertType");
            System.out.println("alertDomain " + alertDomain + ", alertType " + alertType );
        }
    } catch (Exception ex) {
        java.util.logging.Logger.getLogger(EosClient.class.getName()).log(Level.SEVERE, null, ex);
    } 
}

以上代码生成有效json输入所需的输出

{
"propertyAlerts": [
    {
        "alertDomain": "oiq.core.alert.PropertyAlert",
        "alertType": "HERITAGE_DETECTED",
        "oiqCreatedDate": "2013-11-04 03:06:26"
    }
]
}