从JSON文件中提取数据

时间:2014-06-11 00:25:04

标签: json

我有一个大型JSON文件,看起来类似于下面的代码。无论如何我可以遍历每个对象,查找字段“element_type”(如果重要的话,它不存在于文件中的所有对象中)并将具有相同元素类型的每个对象提取或写入文件?例如,每个用户最终都会在名为user.json的文件中出现,而每本书都会出现在名为book.json的文件中?

我考虑过使用javascript,但据我所知js无法写入文件,我也尝试使用linux命令行工具删除所有新行,然后在每个“}”之后插入一个新行,然后遍历每一行以查找元素类型并将其写入文件。这适用于大多数数据;但是,如果下面有像“problem_type”这样的对象,由于“times”元素中嵌套的json,它会在数据中间插入一个新行。我现在已经没想完了。

{
    "data": [
        {
            "element_type": "user",
            "first": "John",
            "last": "Doe"
        },
        {
            "element_type": "user",
            "first": "Lucy",
            "last": "Ball"
        },
        {           
            "element_type": "book",
            "name": "someBook",
            "barcode": "111111"
        },
        {           
            "element_type": "book",
            "name": "bookTwo",
            "barcode": "111111"
        },
        {
            "element_type": "problem_type",
            "name": "problem object",
            "times": "[{\"start\": \"1230\", \"end\": \"1345\", \"day\": \"T\"}, {\"start\": \"1230\", \"end\": \"1345\", \"day\": \"R\"}]"
        }
    ]
}

1 个答案:

答案 0 :(得分:0)

我会为此推荐Java。听起来你在Linux上运行它应该是一个很好的选择。

写入文件没有问题。您可以使用这样的库 - http://json-lib.sourceforge.net/ - 来访问JSONArray和JSONObject之类的东西。您可以轻松地使用它来迭代JSON请求中的数据,并检查“element_type”中的内容并相应地写入文件。