2016-12-22 1 views
1

URL에서 JSON REST API 응답을 받았습니다.
이제 JSON 데이터를 구문 분석 할 수 없습니다.
많은 솔루션을 시도했지만 데이터를 가져올 수 없습니다.
응답이 엉망이지만 필요한 데이터가 포함되어 있습니다.
모든 JSON 개체가 하나의 배열에 있습니다. 여기 JSON REST API 응답을 구문 분석 할 수 없습니다.

은 JSON 응답입니다 :

[{"umeta_id":"1","user_id":"1","meta_key":"nickname","meta_value":"zfdz"},{"umeta_id":"2","user_id":"1","meta_key":"first_name","meta_value":""},{"umeta_id":"3","user_id":"1","meta_key":"last_name","meta_value":""},{"umeta_id":"4","user_id":"1","meta_key":"description","meta_value":""},{"umeta_id":"5","user_id":"1","meta_key":"rich_editing","meta_value":"true"},{"umeta_id":"6","user_id":"1","meta_key":"comment_shortcuts","meta_value":"false"},{"umeta_id":"7","user_id":"1","meta_key":"admin_color","meta_value":"fresh"},{"umeta_id":"8","user_id":"1","meta_key":"use_ssl","meta_value":"0"},{"umeta_id":"9","user_id":"1","meta_key":"show_admin_bar_front","meta_value":"true"}] 

코드 "

if (jsonStr != null) { 
    try { 
     JSONObject jsonObj = new JSONObject(jsonStr); 

     // Getting JSON Array node 
     JSONArray contacts = jsonObj.getJSONArray(""); 

     // looping through All Contacts 
     for (int i = 0; i < contacts.length(); i++) { 
      JSONObject c = contacts.getJSONObject(i); 

      String name = c.getString("umeta_id"); 
      String email = c.getString("user_id"); 
      String mobile = c.getString("meta_value"); 


      HashMap<String, String> contact = new HashMap<>(); 

      contact.put("name", name); 
      contact.put("email", email); 
      contact.put("mobile", mobile); 

      // adding contact to contact list 
      contactList.add(contact); 
     } 
    } catch (final JSONException e) { 
     Log.e(TAG, "Json parsing error: " + e.getMessage()); 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       Toast.makeText(getApplicationContext(), 
         "Json parsing error: " + e.getMessage(), 
         Toast.LENGTH_LONG) 
         .show(); 
      } 
     }); 

    } 
} else { 
    Log.e(TAG, "Couldn't get json from server."); 
    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      Toast.makeText(getApplicationContext(), 
        "Couldn't get json from server. Check LogCat for possible errors!", 
        Toast.LENGTH_LONG) 
        .show(); 
     } 
    }); 

} 

, 나는 온라인 도구를 사용하여 확인
는하지만 내 응용 프로그램에서 데이터를 원하는 json으로 유효합니다. .
무엇이 잘못 되었나요?

답변

1

먼저. jsonObj.getJSONArray(""); ... 키 canno t는 빈 문자열입니다. 그것은 [ 문자가 아닌 { 시작부터 *

귀하의 전체 응답은 JSONArray, 그래서 당신은 당신이 사용이

JSONObject jsonObj = new JSONObject(jsonStr); 

대신를 사용하고 다른 줄을 삭제해서는 안

JSONArray contacts = new JSONArray(jsonStr); 

그런 다음 for 루프를 시작하십시오.

관련 - How to parse JSON in Android


*이 코드와 다른 문제가 될 수 있지만, 당신은 그것을 사람들은

+0

코드는 내가 안드로이드에서 응답을받을 수 있습니다 잘 실행 무엇인지 언급하지만하지 않은 json 문자열의 많은 잔뜩, 당신이 나를 intrested feilds을 얻는 방법을 보여줄 수있다 –

+0

다른 모든 것들이 완벽하게 괜찮습니다. 왜 그렇지 않다고 생각하니? –

+0

json을 구문 분석 할 수없는 예외를 제공하기 때문에 친절하게 다시 검토하십시오. –

관련 문제