2014-03-13 21 views
0

我解析JSON字符串,面對org.json.JSONException:在角色未終結的對象在Android

org.json.JSONException錯誤:在未終止的字符對象25

我的JSON是從Facebook獲取

{Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[{"venue":{"id":108242939200809,"zip":"","longitude":11.4,"latitude":62.5833,"street":""},"location":"Røros, Norway","eid":1473462312875161,"pic_big":"https:\/\/fbcdn-profile-a.akamaihd.net\/static-ak\/rsrc.php\/v2\/yn\/r\/5uwzdFmIMKQ.png","pic_small":"https:\/\/fbcdn-profile-a.akamaihd.net\/static-ak\/rsrc.php\/v2\/yy\/r\/XcB-JGXohjk.png","description":"Test","name":"Test"},{"venue":{"id":105818232792451,"zip":"","longitude":108.217,"latitude":16.0167,"street":""},"location":"Hòa Vang","eid":1425682134338854,"pic_big":"https:\/\/fbcdn-profile-a.akamaihd.net\/static-ak\/rsrc.php\/v2\/yn\/r\/5uwzdFmIMKQ.png","pic_small":"https:\/\/fbcdn-profile-a.akamaihd.net\/static-ak\/rsrc.php\/v2\/yy\/r\/XcB-JGXohjk.png","description":"test","name":"Test"}]}}, error: null, isFromCache:false} 

我的JSON解析器是

public static JSONArray parse(Response response) throws JSONException{   
     JSONArray jsonArray=new JSONArray(response.toString()); 
     return jsonArray; 
    } 

請HEL我。非常感謝你。

+0

您是否嘗試過使用Volley + GSON?這很容易實現。看看這個教程:http://blog.aimanbaharum.com/2014/02/android-development-5-using-volley-and.html – AimanB

回答

1

您的JSON無效。所有變量名稱都需要引用。

+0

嗨Gabe,你能解釋一下嗎?這是我從Facebook獲得的。如何糾正它們?謝謝。 – user3359419

+0

注意狀態之後的所有變量名稱是如何在它們周圍「?」的?那就對了。看看前幾個不怎麼樣?這是無效的。當你試圖解析它時會導致崩潰,因爲它不知道變量名在沒有它的地方結束。 –

3

I M得到相同的錯誤&解決這些問題,如:

GraphResponse響應;

前:

 JSONObject jObjResponse = new JSONObject(response.toString()); 

後:

JSONObject jObjResponse = new JSONObject(String.valueOf(response.getJSONObject())); 
4

只需使用JSONObject graphObj =response.getJSONObject();,你會得到graphObject

0

變化

JSONArray jsonArray=new JSONArray(response.toString()); 

JSONObject start = new JSONObject(String.valueOf(response.getJSONObject())); 

然後直接調用

JSONArray data = start.getJSONArray("data"); 

它給你的 「數據」 JSON陣列。

0
try { 
      JSONObject jsonData = response.getJSONObject(); 
      JSONArray jsonArray = jsonData.getJSONArray("data"); 

      Log.e("MainActivity ", "jsondata --> " + jsonArray.toString(2)); 
      Log.e("MainActivity ", "jsonArray.length()-> " + jsonArray.length()); 

      likesPojos.clear(); 
      for (int i = 0; i < jsonArray.length(); i++) { 

       JSONObject json = jsonArray.getJSONObject(i); 

       Log.e("MainActivity ", "message --> " + json.getString("name")); 
       Log.e("MainActivity ", "id --> " + json.getString("id")); 

       LikesPojo likesPojo = new LikesPojo(); 
       likesPojo.setId(json.getString("id")); 
       likesPojo.setName(json.getString("name")); 
       likesPojos.add(likesPojo); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     }