Как разобрать объекты массива JSON textview 1 и textview 2
Мой код работает для синтаксического анализа объектов json в одном текстовом представлении. Теперь я хочу изменить его, чтобы разобрать первый объект в текстовый Response, а второй в текстовый Response2, поэтому я изменил цикл for на i < = 1, чтобы я мог получить только первое 2 результата из массива мне не нужны остальные. цикл for работает на 1 поле, но я думаю, что-то не так с моим циклом if /else
try {
// Parsing json array response
// loop through each json object
jsonResponse = "";
jsonResponse2 ="";
for (int i = 0; i <= 1; i++) {
//int i <= 1
JSONObject person = (JSONObject) response
.get(i);
String name = person.getString("name");
if (i <=0){
jsonResponse += "Name: " + name + "\n\n";
}
else { jsonResponse2 += "Name: " + name + "\n\n";}
}
txtResponse.setText(jsonResponse);
txtResponse2.setText(jsonResponse2);
JSON
[
{
"name": "Ravi Tamada",
"email": "ravi8x@gmail.com",
"phone": {
"home": "08947 000000",
"mobile": "9999999999"
}
},
{
"name": "Tommy",
"email": "tommy@gmail.com",
"phone": {
"home": "08946 000000",
"mobile": "0000000000"
}
},
{
"name": "Roy",
"email": "roy8@gmail.com",
"phone": {
"home": "01944000000",
"mobile": "6600000000"
}
},
{
"name": "Sami",
"email": "sami69@gmail.com",
"phone": {
"home": "08006 104400",
"mobile": "7700000000"
}
}
]
1 ответ
Может ли это решить вашу проблему:
String name1,name2,name3,name4;
JSONArray jArray=new JSONArray(result);
for(int i=0;i<jArray.length();i++){
if(i==0){
name1=jArray.getJSONObject(i).getString("name");
Log.e("Name First", name1);
}else if(i==1){
name2=jArray.getJSONObject(i).getString("name");
Log.e("Name Second", name2);
}else if(i==2){
name3=jArray.getJSONObject(i).getString("name");
Log.e("Name Third", name3);
}else if(i==3){
name4=jArray.getJSONObject(i).getString("name");
Log.e("Name Four", name4);
}
}
// txtResponse.setText(name1);
// txtResponse2.setText(name2);
Где "result" - это строка вашего массива json.