我有一个500,000行json文件,我正在尝试阅读,我尝试了一些在线示例,如mkyong和许多其他人,但这种格式是我第一次遇到。任何人都可以帮助我开始吗?
我正在使用json-simple库。
对此主题有何启发?我将非常感激
{
"info": {
"category": "url",
"started": "2013-11-07 03:44:32",
"ended": "2013-11-07 03:46:55",
"version": "0.6",
"duration": 143,
"id": 37
},
"signatures": [],
"static": {},
"dropped": [
{
"yara": [],
"sha1": "6fd9eb6a42fd531988fba24137a2fe29ad992465",
"name": "tia[1].png",
"type": "PNG image data, 27 x 23, 8-bit/color RGB, non-interlaced",
"sha256": "75d6d26afb9506145d7f6472555855ef4305e0ef3e7cf4cb3d943c58123c7f74",
"crc32": "FDCAC92F",
"path": "/home/user/cuckoo/storage/analyses/37/files/2435944344/tia[1].png",
"ssdeep": null,
"size": 387,
"sha512": "b47ca17050ff4b6ddab848195c17b875454aafbec06d07bba126e553c9d32647f461adee9d1a75bbfffa08d6a8fc955429562794b123bebc9ec23dc89bdefcc5",
"md5": "ad07ee4cb98da073dda56ce7ceb88f5a"
}
]
}
REPLY
我目前还不明白如何在[删除]中获取数组,我做了一些更简单的例子,但这对我来说是第一次。好像有层次结构,但我不知道如何访问它
答案 0 :(得分:3)
为什么不从json-simple decoding examples开始?如果它是您担心的文件大小,那么您应该使用'SAX'样式示例。这段代码将是如何不这样做的一个很好的例子。请参阅其他评论以获得更好的想法。
JSONObject data= (JSONObject)JSONValue.parse(new InputStreamReader(JsonSimpleEx.class.getResourceAsStream("/test.json")) );
JSONArray dropped = (JSONArray)data.get("dropped");
JSONObject first = (JSONObject)dropped.get(0);
System.out.println( first.get("crc32"));
答案 1 :(得分:1)
您可以使用Gson - from Google。它简单而简洁。
您需要声明代表您的JSON数据的Java POJO,例如:
public class Info {
private Category category;
...
}
希望这有帮助。祝你好运。