如果我有这个json
{
"aggregations" : {
"cityAgg": {
"'buckets": {
"buckets" : [
{},{},{}
]
}
}
}
}
我可以使用简单json
提取最后一个buckets
数组
JSONObject aggregations = (JSONObject)jsonResponse.get("aggregations");
JSONObject cityAgg = (JSONObject)aggregations.get("cityAgg");
JSONObject buckets = (JSONObject) cityAgg.get("buckets");
JSONArray result = (JSONArray) buckets.get("buckets");
但是为每个json级别制作对象很无聊,是不是有更好/更简单的方法呢?
可能是:
jsonResponse.get("aggregation/cityAgg/buckets/buckets")
答案 0 :(得分:0)
您可以使用Google提供的Gson格式化json,将Object转换为Json,反之亦然。
Gson是一个Java库,可用于将Java对象转换为JSON表示。它还可用于将JSON字符串转换为等效的Java对象。 Gson可以处理任意Java对象,包括你没有源代码的预先存在的对象。
可以在这里查看样本: Gson Usage
示例强>
{
"aggregations" : {
"cityAgg": {
"'buckets": {
"buckets" : [
{},{},{}
]
}
}
}
}
创建具有此深度层次结构的模型
class Aggregations{
private CityAgg cityAgg;
//getters and setters
}
class CityAgg{
private Bucket buckets;
//getters and setters
}
class Bucket{
//some properties
}
您将使用父类来获取其中加载的所有属性