2015-05-21 16 views
1

我有我需要刪除鍵/值對是如何從JSON文件

例子的每個實例的大型JSON文件中刪除一個鍵/值對:

"LastModifiedDate" : "2015-05-20T23:41:46.000+0000" 

幾個不同級別的對象。關鍵始終是一樣的,但日期時間值是不同的每一個。

有沒有辦法使用Sublimetext和全局替換或宏刪除所有這些?或者可能像jq一樣的實用工具?

問題是我試圖序列化這個和這個鍵不存在,所以它失敗。我想在序列化之前將其刪除。如果這是不可能的,我可能能夠在其序列化之前實施JavaScript解決方案。

回答

1

這是一個簡潔的解決方案,因爲您沒有提供關於JSON文件的更多細節。假設你有一個JSON數組,並且所有的對象都包含這個鍵值對,這個解決方案應該可以工作。在javascript:我假定

for(var i = 0; i < jsonArray.length; i++) { 
    delete jsonArray[i]['LastModifiedDate']; 
} 

樣品JSON輸入數據如下:

jsonArray = [{ 
    "LastModifiedDate": "2015-05-20T23:41:46.000+0000", 
    "BookID": "1", 
    "Author": "Mr.X" 
}, 
{ 
    "LastModifiedDate": "2015-05-21T23:41:46.000+0000", 
    "BookID": "2", 
    "Author": "Mr.Y" 
}, 
{ 
    "LastModifiedDate": "2015-05-22T23:41:46.000+0000", 
    "BookID": "3", 
    "Author": "Mr.Z" 
}] 

當執行該數據的JavaScript代碼以上,jsonArray的值會改變,以這樣的:

[{ 
    "BookID": "1", 
    "Author": "Mr.X" 
}, 
{ 
    "BookID": "2", 
    "Author": "Mr.Y" 
}, 
{ 
    "BookID": "3", 
    "Author": "Mr.Z" 
}] 

這裏有一個fiddle

1

嘗試崇高文本本身拱,並與正則表達式替換:

"LastModifiedDate".*$ 

和什麼也沒有

0

變種S = JSON.stringify(JSONArray),其中取代; VAR P = s.replace(/ 「LastModifiedDate [^,}] +,/克, '');

NewjsonArray = JSON.parse(P);

現在你有JSON用了」 LastModifiedDate「鍵,價值對