[英]JavaScript parsing a JSON file
我正在使用以下代碼來解析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文件。 我如何逐行讀取文件並刪除字段,就像我單行所做的那樣。 我對Java的使用經驗為零,所以不知道如何讀取文件或創建新文件。 我想我會使用某種數組,但是我不確定。 有人可以幫忙嗎?
如果您的文件如下所示:
[{"jobID": "1",...},{"jobID": "2",...},{"jobID": "3",...},...]
您可以執行以下操作:
var objArray = JSON.parse(str);
for( var k=0; k<objArray.length; k++ ) {
delete objArray[k]['flavor'];
delete objArray[k]['pkgT'];
}
var newstr = JSON.stringify(objArray);
document.write(newstr);
只需通過復制和粘貼將完整的文件內容添加到str變量中即可。
如果您需要定期執行此解決方案,將無法為您提供幫助!
這樣的事情可能會起作用。 我還沒有一個6000行的JSON文件可以對其進行測試,但是它至少應該使您清楚地知道下一步應該在哪里解決。
請記住,JSON塊只是普通的javascript對象,它們已經是具有自己方法的數據結構,因此您可以使用標准對象迭代對其進行迭代。
var bigObj = json.parse(jsonFile);
var objArray = [];
var newStr;
for (var obj in bigObj){
if (bigObj.hasOwnProperty(obj)){
delete obj['flavor'];
delete obj['pkgT'];
newStr = JSON.stringify(obj);
objArray.push(newStr);
}
}
document.write(objArray.join("/n").toString());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.