【发布时间】:2013-04-11 06:19:40
【问题描述】:
我正在使用以下代码来解析 JSON 文件的单行:
var str = '{ "jobID": "2598752", "account": "TG-CCR120014", "user": "charngda",
"pkgT": {"mvapich2-new/1.2": { "libA": ["libmpich.so.1.1"], "flavor": ["default:pgi/7.2-5"] } },
"startEpoch": "1338608868", "runTime": "48", "execType": "user:binary", "exec": "IOR",
"numNodes": "4", "sha1": "755187bd8550881bb0c9951822e74a9a53c8d0f3", "execEpoch": 1336757832,
"execModify": "Fr, Ma, 1, 12:37:1, 2012", "startTime": "Fr, Ju, , 22:47:4, 2012",
"numCores": "64","sizeT": { "bss": "36224", "text": "3502656", "data": "128944" } }';
var obj = JSON.parse(str);
delete obj['flavor'];
delete obj['pkgT'];
var newstr = JSON.stringify(obj);
document.write(str);
但是,我想解析整个 6000 行 JSON 文件。我如何逐行读取文件并删除字段,就像我对单行所做的那样。我对 Javascript 的经验为零,所以我不知道如何读取文件或创建新文件。我假设我会使用某种数组,但我不确定。有人可以帮忙吗?
【问题讨论】:
-
Javascript 并不真正使用文件...除非您使用的是 Node 或类似的东西。能详细点吗?
-
好的,我有一个非常大的 JSON 文件,每一行都被格式化为上面的 str 变量。最终,我想创建一个新文件,其中每一行只包含 jobID 和 exec 字段。我真的不在乎我是如何做到这一点的,但是我在这里问了很多问题,这个 Javascript 是我最接近解决方案的。如果您有更好的想法,请分享。
-
只需创建一个具有 jobID 和 exec 作为属性的对象。从您的 JSON 文件中提取这些字段并分配给创建的新对象
-
@amber4478 您需要在网站上执行此操作,还是仅在本地计算机上执行此操作?好像您只需要在本地执行此操作,您从终端运行的简短脚本会更适合此操作(可以是 Node (Javascript))
-
很抱歉我整天都在工作,但我没有在网站上运行它。我打算为每个 JobID 将同时出现的 exec 文件放在 DSM 中,然后进行一些分析。但是我每天都有大约 6000 行的日志需要解析。
标签: javascript json file