2014-10-30 8 views
-3

편집 텍스트로 json을 구문 분석하고 ID와 일치 시키며 텍스트 뷰에서 전달하는 데이터를로드하려고합니다. 실제 JSON을 사용하든 im을 올바른 방식으로 사용하여이 문제를 처리하는 가장 효율적인 방법을 결정하는지에 대해서는 확실하지 않습니다. 내가 글고 치기에 '5'를 입력하면, 나는 오류가 아래에 언급 얻을 :org.json.JSONException : ID 값이 없습니다

오류 : URL에서

org.json.JSONException: No value for id 

json으로 구문 분석되고 :

{ 
"id": "5", 
"first_name": "Larry", 
"last_name": "Gonzales", 
"email": "[email protected]", 
"country": "Japan", 
"ip_address": "242.198.195.241" 

}

자바 :

 try { 


      JSONObject e = new JSONObject(); 
      JSONObject jsonobjectidloader = e.getJSONObject(TAG_ID); 

     if (jsonobjectidloader.equals(xyz)){ 

       uid.setText(id3); 
       id3 = jsonobjectidloader.getString(TAG_ID); 
       name1.setText(fname); 
       fname = jsonobjectidloader.getString(TAG_FIRST_NAME); 
       name2.setText(lname); 
       lname = jsonobjectidloader.getString(TAG_LAST_NAME); 
       email1.setText(email); 
       email = jsonobjectidloader.getString(TAG_EMAIL); 
       ipaddres.setText(ipa); 
       ipa = jsonobjectidloader.getString(TAG_IP); 
       cou.setText(country); 
       country = jsonobjectidloader.getString(TAG_COUNTRY); 

너희들이 이걸로 나를 도울 수 있기를 바란다. 정말로 지금 당황했다.

+2

e = new JSONObject();'...'e'는 비어 있으며 "id"속성이 없습니다 ... – Selvin

+0

Okey,하지만 지금 json으로 마무리해야합니까? 내가 언급 한 방식으로 json을 파싱하고 싶다고 가정 해 보겠습니다. 어떻게 내가 이것에 관해 가겠습니까? – stackingboxes

답변

1

다음 코드를 사용하십시오.

JSONObject jsonobjectidloader= new JSONObject(YOUR_JSON_STRING); 

if (jsonobjectidloader.equals(xyz)){ 

      id3 = jsonobjectidloader.getString(TAG_ID); 
      uid.setText(id3); 
      fname = jsonobjectidloader.getString(TAG_FIRST_NAME); 
      name1.setText(fname); 
      lname = jsonobjectidloader.getString(TAG_LAST_NAME); 
      name2.setText(lname); 
      email = jsonobjectidloader.getString(TAG_EMAIL); 
      email1.setText(email); 
      ipa = jsonobjectidloader.getString(TAG_IP); 
      ipaddres.setText(ipa); 
      country = jsonobjectidloader.getString(TAG_COUNTRY); 
      cou.setText(country); 
+0

id3에 JSON을 구문 분석하기 전에 값이 없다면 id3에 값을 할당하기 전에 uid.setText (id3)를 호출하면 작동하지 않는다고 생각합니다. – 2Dee

+1

코드에서 발생할 수있는 잠재적 오류를 지적하고 싶었습니다. 훨씬 더 좋을 것 같아요;) – 2Dee

+1

@ 2Dee 코드를 확인하지 않고 코드를 복사/붙여 넣기 만하면됩니다. 그런데 그런 오류를 가리켜 주셔서 감사합니다. 좋은 캐치 .. :) –

2
JSONObject e = new JSONObject(response.toString()); 

String id3 = e.getString(TAG_ID); 

응답

0

그냥 당신이 실제로 인자로 생성자를 jsonboject하는 문자열을 제공해야

String json = '{"id":"5","first_name":"Larry","last_name":"Gonzales","email":"[email protected]","country":"Japan","ip_address":"242.198.195.241"}'; 
e = new JSONObject(json); 
..... 

로 사용하는 서버에서 JSON이다.

관련 문제