2016-04-06 15 views
0

Android için bir uygulama yapıyorum.JSONObject değil workign

Ben ateş ve HTTP GET isteği ve bu istek bir JSONObject döndürür. Değeri anahtarla almak istiyorum. Ama bu düzgün çalışmıyor. Ben Log.d("title", String.valueOf(obj.has("name"))); giriş yaparsanız bu doğru geçmesine yol açacaktır {"id":1,"name":"math","description":"This is a math course."}

: Bu aldığım JSONObject nesnesi adında obj olduğunu. JSONObject öğesindeki tüm anahtarlar için çalışır.

Ama adını almak istiyorum ve bu yüzden bunu yaparsanız: org.json.JSONException:

Log.d("title", obj.getString("name")); 

Ben işlenmeyen bir özel durum alırsınız.

Bu sorunu nasıl giderebileceğimi bilen var mı?

+0

tam günlüğünüzü ve stacktrace'inizi gönderin – njzk2

cevap

0

Belki böyle Someting denemelisiniz:

Log.d ("title", obj.name);

+0

obj.name işe yaramaz :) '' adının yakınında anahtar? –

+0

Bunun nasıl uygulanacağını düşünürdünüz, ama hayır. Bu çalışmıyor. Bence bu çalışma işe yaramaz çünkü Java sıkı yazılmıştır. –

0
var obj = $.parseJSON('{"id":1,"name":"math","description":"This is a math course."}'); 
alert(obj['name']); 

Bunu deneyin :) jquery kullanmıyorsanız JSON.parse değerini $ .parseJSON kullanabilirsiniz. Java ardından ilk böyle bir JSONArray almak gerekir böylece {}, bir dizinin parçası haline arasındaki

String s = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}"; 
JSONObject jObject = new JSONObject(s); 
JSONObject menu = jObject.getJSONObject("menu"); 

Map<String,String> map = new HashMap<String,String>(); 
Iterator iter = menu.keys(); 
while(iter.hasNext()){ 
    String key = (String)iter.next(); 
    String value = menu.getString(key); 
    map.put(key,value); 
} 
+0

Javascript veya jquery değil bir Java çözümü arıyorum, ama çaba için teşekkürler! –

+0

Ben bir Java uzmanı değilim ama bunu başka bir yerde buldum :) Umarım bu yardımcı olur (Düzenlendi) –

+0

İlk bölüm, iç içe JSONObjects ile ilgilidir. Bir süre Dize anahtarınız var = bir şey. ve sonra menu.getString (anahtar). Bu, object.getString ("plainString") ile aynı sonucu verir. Yani maalesef bu benim için çalışmayacak. Tekrar teşekkürler! –

0

Herşey:

JSONArray myJSONArray = obj.getJSONArray();

Ve sonra birlikte alan değerleri erişebilirsiniz:

myJSONArray.getString ("name") vb ... JSONArray ile çalışmak nasıl google

arayın.

+0

Bu işe yaramıyor. Obj.getJSONArray() bir String parametresi olarak bekler. Ayrıca, {} bir nesne için bir bildirim olduğuna inanıyorum. Bu: [{}, {], {}] bir objectArray için bir bildirimdir. –

İlgili konular