簡體   English   中英

JavaScript解析JSON文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM