2017-06-19 74 views
0

我想解析我的JSONObject來獲取我的JSON數組的數據。JSONObject到JSONObject類拋出異常

但問題是JSONParser是org.json.simple.JSONParser中的類,而JSONObject是org.json.JSONObject中的類。

我在org.json中找不到任何解析器來避免類強制異常!

我們有其他方法可以將這些東西分類嗎......?

或者我會在一個完全錯誤的方向? 請建議

我的JSON的樣子:

{ 
"dataIntents": [ 
{ 
    "intent": "muster.policy.daily", 
    "expr": "Am I supposed to register my attendance daily?" 
}, 
{ 
    "intent": "leave.probation", 
    "expr": "An employee is eligible for how many leaves in 1st year ??" 
}, 
{ 
    "intent": " leave.resigned ", 
    "expr": "Are resigned employees eligible for pro rata leave credit" 
}, 
{ 
    "intent": " muster.deadline.submission ", 
    "expr": "By when should I get my pending leave/Emuster applications 
approved?" 
    } 
] 
} 

我的主類:

public class DLMain { 

public static void main(String[] args) { 

try { 
     JSONParser parser = new JSONParser(); 
     Object obj = 
     parser.parse(newFileReader("/home/cmss/Downloads/data.json")); 
     org.json.JSONObject dataObject = (org.json.JSONObject)obj; 
     System.out.println(dataObject); 
     org.json.JSONArray getArray = 
     dataObject.getJSONArray("dataIntents"); 

     for (int i = 0; i < getArray.length(); i++) { 
      org.json.JSONObject objects = getArray.getJSONObject(i); 
      String a = objects.getString("expr"); 
     } 
     System.out.println(); 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
    } 
} 

我想在一個JSONObject或字符串我的 「EXPR」 鍵的所有值。

幫助提前感謝:)

+0

嘗試使用'org.json.simple.JSONObject'和'org.json.simple.JSONArray' – SpaceBison

+0

@SpaceBison如果我使用org.simple.json.JSONArray,那麼我在dataObject.getJSONArray(「dataIntents 「); – shubham

+0

'org.json.simple.JSONObject'與'org.json.JSONObject'具有不同的接口,因爲它來自不同的庫。有關詳細信息,請參閱文檔:http://alex-public-doc.s3.amazonaws.com/json_simple-1.1/index.html – SpaceBison

回答

1

爲什麼不使用POJO呢?

到目前爲止,您的JSON是意圖的列表,你可以有這樣的:

public class Intents { 
    private List<Intent> dataIntents; 
} 

和另一

public class Intent { 
    private String intent; 
    private String expr; 
} 

(請生成構造和getter的setter)

而且那麼你可以直接使用ObjectMapper,並避免所有醜陋的JSON解析。

希望它有幫助!

+0

感謝您的建議,但我不想使用pojo類。我想讓我的程序輕量化 – shubham

+0

您是否在千克打印的代碼上加載代碼? ;)(這是一個笑話)代碼在可以理解的時候好得多,但也許這是我個人的看法。 –

+0

其實我不想讓它變得複雜。我只想使用簡單的JSON庫而不是製作pojo的。這個實例是爲了製作一個聊天機器人所需要的。謝謝:) – shubham