我正在尝试解析巨大的JSON数据。我不能在这个问题中给出JSON内容。但您可以在此链接中看到实际数据: -
https://drive.google.com/file/d/1p3lfaQ_k3C9DB3qA3W72IGiefwLUhCzm/view
我知道有像GSON和Jackson这样的热门图书馆。我厌倦了GSON: -
JsonParser jsonParser = new JsonParser();
JsonElement element = jsonParser.parse(line); // line contains all json data
但是JsonElement没有合适的方法来通过json密钥获取数据。
我的意图是解析json数据中数组的数据。我该怎么办?
答案 0 :(得分:0)
您可以使用这个简单的json库
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180130</version>
</dependency>
如果我理解正确的话,它具有您需要的用户友好界面
JSONObject obj = new JSONObject("jsoncontent");
JSONArray arr = obj.getJSONArray("arraykey");
Integer i=obj.getInt("someintegerfield");
JSONObject aob = obj.getJSONObject("anotherobject");
答案 1 :(得分:0)
JsonElement
是GSON解析器返回的所有节点的父类。在您的情况下,根节点是JsonObject
,因此将元素强制转换为该节点或使用便捷存取器getAsJsonObject
是安全的。
JsonObject
拥有您进行字段访问所需的API,JsonArray
具有用于阵列访问的API:
JsonElement root = new JsonParser()
.parse(new FileReader("data.json"));
JsonArray data = root.getAsJsonObject()
.getAsJsonObject("dataset_data")
.getAsJsonArray("data");
System.out.println(data.size());