所以我得到了这个 JSON 结构作为 HTTP 响应。结构如下所示:
{
"field1": "value1",
"field2": {
"field2-2": [
{
"field2-2-1": "some value",
"field2-2-2": {
"key" : "some value"
}
}
]
}
}
当然,我简化了它,但你明白了。现在我使用Gson将其转换为HashMap:
HashMap<String, Object> resultMap = new Gson().fromJson(httpResult, type);
现在,要访问 Java 中的“field2-2-2”,我这样做:
LinkedTreeMap someMap = (LinkedTreeMap) resultMap.get("field2");
ArrayList<LinkedTreeMap> someList = (ArrayList) someMap.get("field2-2");
LinkedTreeMap anotherMap = someList.get(0);
anotherMap.get("key");
我再次简化了它,但是有没有更好的方法来访问这个“深层”领域?或者为了可读性,我可以以某种方式链接方法吗?我的意思是,如果这一切都是 ArrayList,我可以做类似的事情:
ArrayList<Arraylist<String>> sampleList = new ArrayList<>();
sampleList.get(0).get(0);
最佳答案
您可以直接将其映射到 POJO 类。喜欢:
@JsonInclude(Include.NON_NULL)
public class ApiResponse {
String field01;
Field2Class field02;
}
Field2Class.class
public class Field2Class {
ArrayList<Field02_2> field02_2;
}
Field02_2.class
public class Field02_2 {
String field02_2_1, field02_2_2;
}
每个类都有 getter、setter 和默认构造函数。
关于java - 深入 JSON 结构到 Java 对象,有没有比我更好的方法?看起来很可怕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59066154/