【问题标题】:how to remove a key/value pair from a JSON file如何从 JSON 文件中删除键/值对
【发布时间】:2015-05-21 00:39:08
【问题描述】:

我有一个大的 JSON 文件,我需要删除键/值对的每个实例

示例:

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

来自不同级别的多个对象。密钥始终相同,但每个日期时间值不同。

有没有办法使用 Sublimetext 和全局替换或宏来删除所有这些?或者可能是像 jq 这样的实用程序?

问题是我正在尝试序列化这个并且这个键不存在所以它失败了。我想在序列化之前将其删除。如果那不可能,我可以在其序列化之前实现一个 javascript 解决方案。

【问题讨论】:

    标签: javascript json sublimetext sublimetext3


    【解决方案1】:

    尝试 sublime 文本搜索并用正则表达式替换:

    "LastModifiedDate".*$
    

    什么都没有替换

    【讨论】:

      【解决方案2】:

      这是一个简洁的解决方案,因为您没有提供有关 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

      【讨论】:

        【解决方案3】:

        var s =JSON.stringify(jsonArray); var p = s.replace(/"LastModifiedDate[^,}]+,/g,'');

        NewjsonArray = JSON.parse(p);

        现在您有了没有“LastModifiedDate”键值对的 json。

        【讨论】:

          猜你喜欢
          • 2021-03-10
          • 2014-09-06
          • 2021-07-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-15
          • 2023-04-06
          • 2019-10-17
          相关资源
          最近更新 更多