2014-10-06 85 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