2014-10-30 2 views
-3

Я пытаюсь разобрать json с edittext, сделать его совпадением для id и загрузить данные, которые он несет в текстовом виде. Я не совсем уверен, как это сделать, будь то использование правой JSON, или если im использует правильный способ определить наиболее эффективный способ справиться с этим. Когда я вхожу '5' в EditText, я получаю сообщение об ошибке, указанных ниже:org.json.JSONException: Нет значения для id

Ошибка:

org.json.JSONException: No value for id 

JSON из URL разбираемый:

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

}

Java :

 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, я бы подумал, что вызов uid.setText (id3) перед назначением значения id3 не будет работать. – 2Dee

+1

У меня не было никаких проблем, просто хотелось указать на возможные ошибки, которые могут возникнуть из кода. Гораздо лучше, я думаю, проголосовал;) – 2Dee

+1

@ 2Dee я просто копирую/вставляю его код, не проверяя его. Кстати, спасибо за то, что вы указали такую ​​ошибку. Хорошо поймал.. :) –

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

String id3 = e.getString(TAG_ID); 

Ответ Ваш JSON от сервера

0

просто использовать его как

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); 
..... 

вам нужно на самом деле предоставить строку jsonboject конструктор в качестве аргумента.

Смежные вопросы