2015-10-12 35 views
0

我的AJAX傳遞JSON數組,看起來像這樣:削皮JSON字符串javax.json

{"formData":[{"cusID":"2"},{"empID":"1"}],"invoice":578416969} 

我試圖用javax.json庫來獲得數據。

JSONObject jsonObj = new JSONObject(jasonString); 

我能搶的invoice值:

Integer invoiceNum = (Integer) jsonObj.get("invoice"); 

不過,我不能搶的cusIDempID值,通過執行以下操作:

Integer cusId = Integer.parseInt((String) jsonObj.get("cusID")); 
Integer empId = Integer.parseInt((String) jsonObj.get("empID")); 

錯誤消息:未找到org.json.JSONException:JSONObject [「cusID」]。

我做錯了什麼?我願意提供建議,如果你有更好的方式來處理這個數據,我願意使用它。

+0

錯誤信息或結果是什麼?僅供參考,我懷疑這可能與你如何鑄造你的變量有關... – ryekayo

+0

@ryekayo更新了OP添加的錯誤消息 – OPK

+0

http://jsfiddle.net/arunpjohny/wbq4wbd2/1/ –

回答

1

cusID實際上是第一對象的陣列formData中的一個屬性:

jsonObj.getJsonArray("formData").getJsonObject(0).get("cusID"); 

應該做的伎倆。

+1

formData是一個數組對象 – AnatolyS

+0

你嘗試過嗎?它不起作用。 IDE不會編譯 – OPK

+0

剛編輯我的答案。沒有測試,但這應該工作。 – alcfeoh

0

首先,你必須獲得formData作爲一個數組,然後獲取第一個元素並獲得custId,然後獲取第二個元素並獲取empID。

0

您可以使用Gson()庫。 (com.google.gson.Gson) 它使你簡單。

JsonArray formData = jsonElement.getAsJsonObject().get("formData").getAsJsonArray(); 
Integer cusId = formData.get(0).getAsJsonObject().get("cusID").getAsInt(); 
Integer empId = formData.get(1).getAsJsonObject().get("empID").getAsInt();