我正在寻找一种更好的方法(比我现在所做的更好)使用Gson从JSON文件中提取一些数据的方法。显然,所需的数据部分但非常交错,如下所示:
{
"media": {
"content": [
{
"node": { "text": "foo", "id": "123", "user": "somebody" }
}
]
},
"enabled": true,
"count": 0,
"token": "abc"
}
我知道我可以做这样的事情,但这种方法很乏味:
GsonBuilder builder = new GsonBuilder();
jsonObject = builder.create().fromJson(jsonString, jsonObject.class);
class jsonObject {
Media media;
Boolean enabled;
Integer count;
String token;
class Media {
ArrayList<Node> content;
}
class Node {
HashMap<String,String> node;
}
}
所以我的问题是,是否存在一种更优雅的方式来提取字段?我希望有一个类:
class jsonObject {
HashMap<String, String> node;
Boolean enabled;
Integer count;
String token;
}
非常感谢你。任何帮助和建议都表示赞赏。
答案 0 :(得分:1)
这看起来像是这样做的。如果您使用JSON模式文件并通过http://www.jsonschema2pojo.org/之类的生成器运行它,它会吐出类似于您列出的pojos,这非常适合使用GSON进行摄取。
但是,如果要将整个json对象拉入地图,可以使用
Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> map = gson.fromJson("{'key1':'value1','key2':'value2'}", type);