2013-08-29 78 views
0

我需要一些幫助。我在android開發人員中還是個新手。JSONObject到JSONArray

下面是示例中的數據的

strAPI_TERMINAL= "{ 'terminal': { 'id': 2, 'fmt_id': 'fmt0002', 'terminal_type': 'multiple' }}" 

我需要這個對象的數據解析,以JSONArray

這裏我已經做...

JSONObject jsonObject = new JSONObject(strAPI_TERMINAL); 
JSONArray terminal_array = new JSONArray(); 
JSONArray t_array = terminal_array.put(jsonObject); 

當我註銷數據...是的,它已經解析到陣列就像這樣

t_array[{"terminal":{"fmt_id":"fmt0002","id":2,"terminal_type":"multiple"}]

,但是當我想用它以此來獲得「終端」的數據...

JSONArray TERMINAL_JSON=new JSONArray(t_array.getJSONObject(i).getString("terminal").toString()); 

它說:

Error:Value {"id":2,"fmt_id":"fmt0002","terminal_type":"multiple"} 

請人幫我嗎?

感謝您的幫助......

回答

6

如下試用解析JSON:

JSONObject obj1 = new JSONObject(strAPI_TERMINAL); 
try { 
    JSONArray result = obj1.getJSONArray("terminal"); 
for(int i=0;i<=result.length();i++) 
{ 
    String Id=result.getString("fmt_id"); 
     String terminalType=result.getString("terminal_type"); 
} 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

希望這會幫助你。

感謝

+0

稍作修正:result.length()長度 - 在這種情況下是方法名稱 – heximal

+0

@heximal感謝您的糾正。 :) – GrIsHu

0

根據您的code't_array」是的JSONObject的數組。要訪問't_array'中的每個項目,您需要將每個項目作爲JSONObject獲取,然後訪問該JSONObject的值。

'terminal'的值是一個json對象,你不能將它轉換爲json數組。

要訪問的「終端」的值執行類似下面

t_array.getJSONObject(i).getJSONObject("terminal"); 

上面的代碼將返回作爲Josnidhin所說以下作爲的JSONObject

{ 'id': 2, 'fmt_id': 'fmt0002', 'terminal_type': 'multiple' } 
+0

是的......但是當我做的for循環它repeated..because我不能把數據的索引...不喜歡JSONArray..i可以使用索引來得到確切的數據.. 。任何想法? –

+0

還...終端已經解析爲數組,如果您看到日誌t_array [{「terminal」:{「fmt_id」:「fmt0002」,「id」:2,「terminal_type」:「multiple」}]。 ..但我不確定它是否真的轉換或不... –

+0

終端未被解析爲陣列它被添加到數組。你想達到什麼目的? – Josnidhin

1

,「終端」是一個JSON目的。如果你希望它是一個數組,你需要它,以便在第一時間(注意陣列支架):

strAPI_TERMINAL= "{ 'terminal': [{ 'id': 2, 'fmt_id': 'fmt0002', 'terminal_type': 'multiple' }]}" 

你真的只是想遍歷鍵的終端對象?如果是這樣,也許你會想看看這篇文章:How to iterate over a JSONObject?