我有一个大的JSON文件,我需要删除
的键/值对的每个实例示例:
"LastModifiedDate" : "2015-05-20T23:41:46.000+0000"
来自不同级别的几个对象。密钥始终相同,但每个密钥的日期时间值不同。
有没有办法使用Sublimetext和全局替换或宏删除所有这些?或者像jq这样的实用程序?
问题是我正在尝试序列化这个并且此密钥不存在因此失败。我希望在序列化之前将其删除。如果那是不可能的,我可以在序列化之前实现一个javascript解决方案。
答案 0 :(得分:2)
尝试使用sublime文本搜索并替换为正则表达式:
"LastModifiedDate".*$
并且无需替换
答案 1 :(得分: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:
答案 2 :(得分:0)
var s = JSON.stringify(jsonArray); var p = s.replace(/&#34; LastModifiedDate [^,}] +,/ g,&#39;&#39;);
NewjsonArray = JSON.parse(p);
现在你有了#&#34; LastModifiedDate&#34;关键,价值对。