2013-04-11 125 views
0

我想刪除從一個JSON文件風味和pkgT領域與格式化爲每行如下:JSON從文件中刪除字段與正則表達式

 "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"}}, 

所以,我怎麼能構建一個正則表達式來刪除這些領域?謝謝!!!!

好的我修復了JobID字段中缺少的引號,現在怎麼辦?

+0

不要用正則表達式。 – 2013-04-11 05:17:23

+2

爲什麼不把它解析成本地數據結構,剪掉你不想要的位,然後把它序列化回JSON? – 2013-04-11 05:18:56

+2

爲什麼不只是解析JSON,將其刪除,然後再次將其串聯起來? – 2013-04-11 05:18:57

回答

0

由於您的字符串已經在JSON中,您爲什麼要使用正則表達式?這太過複雜了。相反,拿你的字符串並用用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']; 
//returns true if deleted, false if failed 

然後你可以把JSON變成一個字符串。

var newstr = JSON.stringify(obj); 
+0

我認爲這是使用Javascript。正如我所說我完全沒有JSON文件的使用經驗,而這個愚蠢的事情正在給我做惡夢, – amber4478 2013-04-11 05:43:44

+0

你是否推薦使用IDE來構造這個? – amber4478 2013-04-11 05:46:46

+0

甜!我使用了NetBeans和您推薦的代碼,但這只是7000行JSON文件的一行,我如何處理整個事情? – amber4478 2013-04-11 06:08:58

相關問題