如何解析包含多个相同类型的 JSON 对象(不是数组)的 JSON 对象
Posted
技术标签:
【中文标题】如何解析包含多个相同类型的 JSON 对象(不是数组)的 JSON 对象【英文标题】:How to Parse a JSON object with contains multiple JSON objects ( not an array) of the same type 【发布时间】:2022-01-18 03:20:30 【问题描述】:我有一个 JSON 对象,其中包含多个 JSON 对象,所有类型都相同。 我应该如何用 GSON 解析它?
json:
"people":
"1":
"name": "A",
"age": 5
,
"2":
"name": "B",
"age": 6
,
"3":
"name": "C",
"age": 7
假设我有这个类 Person
class Person
private String name;
private int age;
我应该如何使用 GSON 将数据解析为数组? List<Person> people;
【问题讨论】:
【参考方案1】:你需要一个代表你的 json 结构的类:
class Person
private String name;
private int age;
class PersonMap
private Map<String, Person> people;
@Test
public void test()
String json =
"\r\n"
+ "\"people\":\r\n"
+ " \"1\": \r\n"
+ " \"name\": \"A\",\r\n"
+ " \"age\": 5\r\n"
+ " ,\r\n"
+ " \"2\": \r\n"
+ " \"name\": \"B\",\r\n"
+ " \"age\": 6\r\n"
+ " ,\r\n"
+ " \"3\": \r\n"
+ " \"name\": \"C\",\r\n"
+ " \"age\": 7\r\n"
+ " \r\n"
+ "\r\n"
+ "";
Gson gson = new GsonBuilder().setPrettyPrinting().create();
var persons = gson.fromJson(json, PersonMap.class).people.values();
for (Person person : persons)
System.out.println(person.name + " " + person.age);
【讨论】:
以上是关于如何解析包含多个相同类型的 JSON 对象(不是数组)的 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章
如何从android中的url解析多个JSON对象和数组?我正在使用一个示例,我希望在该示例中使用它,