2015-05-15 3 views
0

Пожалуйста, вы можете мне дать мне руку, я пытаюсь разобрать JSON-файл с URL-адреса. Ниже приведен код, который я использовал для захвата файла и изначально просто отправил его в TextView, но теперь я хочу проанализировать теги и использовать их?Parse JSON URL - ошибка JSONException

private void postData(final String param, final TextView tv) { 

    final RequestQueue request = Volley.newRequestQueue(this); 

    JSONObject postReq = new JSONObject(Request.Method.GET, url_login, new Response.Listener<JSONObject>() { 

     @Override 
     public void onResponse(JSONObject response) { 

     } 
    }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      System.out.println("Error [" + error + "]"); 

     } 
    }) { 

     @Override 
     public Map getHeaders() throws AuthFailureError { 
      Map headers = new HashMap(); 
      headers.put("Accept", "application/json"); 
      System.out.println(headers); 
      return headers; 
     } 
    }; 
    request.add(postReq); 
} 

пример JSON ниже

{ 
“UserInfo”: { 
    “User”: { 
     “name”: “Craig”, 
     “surname”: "Churchill", 
     "userId": "1463353", 
     "userAlias": "Craig" 
    } 
    } 
} 

Я попытался this, но только не смогли постоянно и просто не могут получить это право.

enter image description here

+0

Просим удалить запятая в конце (после «Craig») ... и вы можете добавили исключение, это полезно, иногда ... –

+0

Что причина? – x10sion

+0

Последняя пара ключ-значение не содержит запятую. –

ответ

0
{ 
    "UserInfo": { 
     "User": { 
      "name": "Craig", 
      "surname": "Churchill", 
      "userId": "1463353", 
      "userAlias": "Craig" 
     } 
    } 
} 

подмигнули действительный JSON. Я пробовал это на http://jsonlint.com/ Но у вас есть двойные запятые, которые имеют странную кодировку. Я поставил json выше с правой запятой doble, поскольку jsonlint выдавал ошибки, подтверждающие json, пока я не изменил их.

Проблема может быть в том, как вы присоединяетесь к объекту, и это его дети. Попробуйте это.

@Override 
public void onResponse(JSONObject response) { 
    try { 
     JSONObject userObj = response.getJSONObject("UserInfo") 
          .getJSONObject("User"); 
     String name = userObj.getString("name"); 
     ... 
    } catch (JSONException jsEx) { 
     jsEx.printStackTrace(); 
    } 

} 
+0

Пожалуйста, посмотрите изображение, которое я добавил в проблему, я слишком часто сталкиваюсь с этим ... – x10sion

+0

@ x10sion обновил мой ответ, просто попробуйте chatch – axierjhtjz

+0

omw! Ты шутишь, что ли! просто нужен улов ..... # FAIL – x10sion