使用Java读取JSON数据

时间:2013-11-23 14:33:48

标签: java json

我有一个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

我目前还不明白如何在[删除]中获取数组,我做了一些更简单的例子,但这对我来说是第一次。好像有层次结构,但我不知道如何访问它

2 个答案:

答案 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;
   ...
}

希望这有帮助。祝你好运。