Вы можете легко прочитать JSONArray
в категории ArrayList
класса типа, представляющего JSONArray
. Спасибо GSON
Весь этот процесс можно выполнить в одной строке кода. как показано ниже.
ArrayList<MyItem> items2 = (new Gson()).fromJson(result,new TypeToken<ArrayList<MyItem>>() {}.getType());
Давайте предположим, что вы получаете с JSONArray
типа MyItem
выше строки кода преобразует JSONArray
в ArrayList
типа MyItem
.
Я написал образец кода, чтобы вы могли получить более качественное изображение.
import java.util.ArrayList;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class MyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<MyItem> items = new ArrayList<>();
for (int i = 0; i < 5; i++) {
MyItem item = new MyItem();
item.setRate("rate_"+i);
item.setSomeCode("some_"+i);
items.add(item);
}
String result = (new Gson()).toJson(items);
System.out.println(""+result);
ArrayList<MyItem> items2 = (new Gson()).fromJson(result,new TypeToken<ArrayList<MyItem>>() {}.getType());
System.out.println(""+items2.size());
}
}
class MyItem {
private String rate;
private String someCode;
public String getRate() {
return rate;
}
public void setRate(String rate) {
this.rate = rate;
}
public String getSomeCode() {
return someCode;
}
public void setSomeCode(String someCode) {
this.someCode = someCode;
}
}
Выход
[
{
"rate": "rate_0",
"someCode": "some_0"
},
{
"rate": "rate_1",
"someCode": "some_1"
},
{
"rate": "rate_2",
"someCode": "some_2"
},
{
"rate": "rate_3",
"someCode": "some_3"
},
{
"rate": "rate_4",
"someCode": "some_4"
}
]
это JSONArray
превращается в ArrayList
типа MyItem
Я также написал некоторые ответы по этой теме, которые вы можете проверить для получения дополнительной информации на serialization
и de-serialization
с использованием GSON
библиотеки
Example_1
Example_2
Example_3
Example_4
где ваш выход ?? JSON –
Невозможно выполнить итерацию через объект json, получить json-массив из объекта json, затем применить для каждого цикла –