下面是從字符串url中調用並返回一個json對象,裏面有一個json數組,但別的東西沒有工作,任何人都可以告訴我如何訪問裏面的數據?來自jsonobject的數據在android
{"data":[{"8196":{"booking_id":"8150","client_id":"107","venue_id":null}}]
下面是從字符串url中調用並返回一個json對象,裏面有一個json數組,但別的東西沒有工作,任何人都可以告訴我如何訪問裏面的數據?來自jsonobject的數據在android
{"data":[{"8196":{"booking_id":"8150","client_id":"107","venue_id":null}}]
String jsonStr = "{\"data\":[{\"8196\":{\"booking_id\": \"8150\",\"client_id\": \"107\",\"venue_id\": null}}]}";
try {
JSONObject json = new JSONObject(jsonStr);
JSONArray array = json.getJSONArray("data");
for (int i = 0; i < array.length(); i++) {
JSONObject o = array.getJSONObject(i);
Iterator it = o.keys();
while (it.hasNext()) {
String name = (String) it.next();
o = o.getJSONObject(name);
int bookingId = o.getInt("booking_id");
int clientId = o.getInt("client_id");
int venueId = o.optInt("venue_id");
Log.v("TEST", String.format("Booking ID: %s -- Client ID: %s -- Venue ID: %s", bookingId, clientId, venueId));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
我想這就是你想要的。順便說一句,你發佈的JSON格式不正確。它最終缺少了一個}。
感謝傢伙馬丁斯代碼大致是我一直在嘗試,但是對象是(「8196」)將會隨着我而改變,知道它是什麼? – user1136994 2013-05-12 19:34:33
我試圖調用對象(「8196」)而沒有實際命名它? – user1136994 2013-05-12 20:42:54
在代碼的關鍵字上添加了一個迭代器。應該解決你的問題。 – 2013-05-13 07:48:16
您首先需要解碼JSON字符串。你得到的JSON刺激實際上是一個JSON對象的序列化版本。
您需要將該字符串解碼爲本機Java對象。
在Java中有很多這樣的方法。您可以先查看json.org上的Java部分。
很抱歉忘了結尾},那不是問題,只是忘了在這裏複製它。 – user1136994 2013-05-12 19:35:33
我認爲問題在於關鍵venue_id的值爲空。你可以用空字符串(「」)替換空值,嘗試它。
向我們展示您當前的代碼,並解釋您的意思是:「別的東西無法正常工作」。 – 2013-05-12 12:48:24
你的JSON輸出本身是錯誤的你可以把你的上面的JSON輸出放在這裏(http://json.parser.online.fr/)你會得到錯誤:SyntaxError:意外的輸入結束...因爲看看你的json輸出結束 – KOTIOS 2013-05-12 13:02:08