2012-07-15 95 views
0

我有一個android應用程序中的代碼,它需要一個數組,其中每個元素是一個字符串,其中包含jsonObject的格式,但我想採取每個對象的值,所以使用它。問題是JsonObject不採用索引0,所以它盯着1,我從來沒有看到第一個對象的值1。jsonobject不支持索引0

for(int i=0;i<a.length;i++){ 
    try { 
     JSONObject jsonn = new JSONObject(a[i]); 
     g=jsonn.getString(TAG_ID); 
     builder.append("\n"+i+"."+"id swicht: "+"\n"+g+"\n"); 
    } 
} catch (JSONException e) {//e.printStackTrace();} 
+0

你的代碼看起來都搞砸了 – Musa 2012-07-15 02:56:24

+0

我認爲我們需要更多的上下文。什麼類型的數組是什麼?它是如何被填充的? – 2012-07-15 03:14:07

+0

數組類型是字符串,起初我收到一個像這樣的字符串:[{「dpid」:「00:00:00:00:00:00:0c」},{「dpid」:「00:00 :00:00:00:00:00:0D 「},{」 DPID 「:」 00:00:00:00:00:00:00:09 「},{」 DPID 「:」 00:00:00 :00:00:00:00:0a「}],然後我使用split,'ca'來轉換數組。這個數組是我在for循環中引用的。 – user1526357 2012-07-15 03:34:52

回答

0

根據您的意見,代碼應該是:

jsonStr = jsonStr.substring(1, jsonStr.length() - 1); // (remove the "[" and "]") 
String[] a = jsonStr.split(","); 
for(int i=0;i<a.length;i++){ 
    try { 
     JSONObject jsonn = new JSONObject(a[i]); 
     g = jsonn.getString(TAG_ID); 
     builder.append("\n"+i+"."+"id swicht: "+"\n"+g+"\n"); 
    } catch (JSONException e) {//e.printStackTrace();} 
} 

如果你不這樣做第一線,在數組中的第一個和最後ELEM將misformat,不能轉換的JSONObject - - 「[{」dpid「:」00:00:00:00:00:00:00:0c「}」不適合JSONObject格式。