2013-07-15 5 views
1

Итак, я работаю с возвращаемыми значениями из объекта JSON, и я пытаюсь вернуть значения одного из его ключей. Таким образом, я получаю объект JSON.Как получить доступ к значениям, возвращаемым из объекта JSON

{"options":[{"picture":"http:\/\/example.com\/1.png", contact_id="1", name="Tom"}, {"picture":"http:\/\/example.com\/2.png", contact_id="2", name="Jess"}]} 

Теперь я его обработка в приложении для Android, и когда у меня есть окончательная статическая строка с именем сказать TAG, который установлен в опцию

private static final String TAG = "options"; 

и я использую для входа значения JSon, как это

Log.d("Friends name", jsn.getString(TAG)); 

я получаю первый результат

{"options":[{"picture":"http:\/\/example.com\/1.png", contact_id="1", name="Tom"},  {"picture":"http:\/\/example.com\/2.png", contact_id="2", name="Jess"}]} 

Однако я пытаюсь получить доступ только к именам, и я действительно не знаю, как это сделать.

Я попытался установить TAG для options[0].name, чтобы получить только первое имя, но он дал мне ошибку

JSONException: значения для опций [0] .name

Я немного потерянный здесь.

+1

Прежде всего проверить вывод JSON на http://jsonlint.com/ Я проверил JSON вы предоставили, и это есть ошибка .. – Krrishnaaaa

+1

я думаю, что это должно быть «:» вместо «=». –

+0

Доступ к первому имени с помощью 'jsn.options [0] .name;' В случае вашего - 'TAG = jsn.options [0] .name;'. – g00dy

ответ

3

Если вы говорите о JSON, то строка, которую вы выложили не является допустимым JSON.

Должно быть следующим.

{ 
    "options": [ 
     { 
      "picture": "http://example.com/1.png", 
      "contact_id": "1", 
      "name": "Tom" 
     }, 
     { 
      "picture": "http://example.com/2.png", 
      "contact_id": "2", 
      "name": "Jess" 
     } 
    ] 
} 

Затем напишите ниже фрагмент, чтобы получить имя.

JSONObject android = new JSONObject(json_string); 

JSONArray array = android.getJSONArray("options"); 

for (int i = 0; i < array.length(); i++) { 
    Log.i("name", array.getJSONObject(i).getString("name")); 
} 
+0

Perfect. Спасибо чувак. Это сработало. –

0

Вам нужно создать JSONArray и получить значение, как

JSONArray jsonArr = jsn.getJSONArray(TAG); 
String name=jsonArr.get(0).getString("name"); 
0
JSONObject object=new JSONObject(Your String...); 
JsonArray jArray=object.getJsonArray("options"); 
for(int i=0;i<jArray.length;i++) 
{ 
    JSONObject jObject=jArray.getJSONObject(0); 
String picture=jObject.getString("picture"); 
int id=JObject.getInt("contact_id"); 
    String name=JObject.getString("name"); 

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