2014-10-06 83 views
1

這裏是我要做到這一點,但我得到一個錯誤在該行JSONObject c = orders.getJSONObject(i);的JSONObject解析

Error:(95, 57) error: incompatible types: int cannot be converted to String

也許有這樣做的過程中更好的辦法,請大家幫忙

@Override 
protected String doInBackground(String... params) { 
    try { 
     List<NameValuePair> param = new ArrayList<NameValuePair>(); 
     JSONObject json = jsonParser.makeHttpRequest(URL_ORDERS, "GET", 
       param, token); 
     JSONObject data = json.getJSONObject("data"); 
     JSONObject orders = data.getJSONObject("orders"); 

     Log.d("JSON DATA", data.toString()); 
     Log.d("JSON ORDERS", orders.toString()); 

     for (int i = 0; i < orders.length(); i++) { 
      JSONObject c = orders.getJSONObject(i); 
      imageurl = c.getString(TAG_IMAGE); 
      Log.d("IDK", imageurl); 
      title = c.getString(TAG_TITLE).substring(0, 20); 
      price = c.getString(TAG_PRICE); 
      status = c.getString(TAG_PSTATUS); 
      symbol = c.getString(TAG_PRICESYMBOL); 

      HashMap<String, String> map = new HashMap<String, String>(); 
      map.put(TAG_TITLE, title); 
      map.put(TAG_PRICE, price); 
      map.put(TAG_PSTATUS, status); 
      map.put(TAG_PRICESYMBOL, symbol); 
      map.put(TAG_IMAGE, imageurl); 
      orderList.add(map); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 

這裏是我的JSONResponse http://paste.ofcode.org/umwZRdi7B9Ve7kVjSRNTk8

+0

我覺得命令應該是'JSONArray' – zozelfelfo 2014-10-06 08:47:18

+0

AFAIK你的json格式不正確。但是,如果不是,你想迭代命令,那麼你應該把它看作是一個JSONArray而不是一個對象 – 2014-10-06 08:48:27

+0

api部分的人就是這樣做的,難道沒有其他解決方案嗎? – Alex 2014-10-06 09:05:18

回答

1

orders對象是JSONObject(與訂單ID被用作鍵和完整的訂單對象作爲值),但在你的代碼中,你將它視爲JSONArray

你可能想改變你的循環如下:

Iterator<String> orderIterator = orders.keys(); 

while (orderIterator.hasNext()) { 
    JSONObject c = orders.getJSONObject(orderIterator.next()); 
    // ... 
} 

keys()的通話將返回iterator在對象的鍵(在這種情況下,訂單ID)。然後,只需使用迭代器遍歷所有鍵,然後使用getJSONObject檢索每個訂單對象。

+1

先生謝謝了很多,我一直在爲此努力 – Alex 2014-10-06 09:08:50

+0

請問你能否給我提供關於這種操作的文檔請 – Alex 2014-10-06 09:10:17

+0

我剛剛從Android文檔中獲得它:http://developer.android.com/reference /org/json/JSONObject.html我會用相關鏈接更新我的答案。 – 2014-10-06 09:10:59