有选择地剪切JSON内容

时间:2019-06-13 15:02:03

标签: json hash

我有这样的json对象:

{
  "foo": "bar",
  "object": {
    "a": "b",
    "c": "d",
    "e": "f"
  },
  "objectWithObjects": {
    "a": 1,
    "b": 2,
    "c": {
      "a": 1,
      "b": 2,
      "c": 3
    }
  },
  "array1": [
    {
      "a": 1,
      "b": 2,
      "c": 3
    },
    {
      "a": 4,
      "b": 5,
      "c": 6
    },
    {
      "a": 7,
      "b": 8,
      "c": 9
    }
  ],
  "objectWithNestedArray": {
    "foo": "bar",
    "array2": [
      {
        "a": 1,
        "b": 2,
        "c": [
          {
            "a": 1,
            "b": 2,
            "c": 3
          },
          {
            "a": 4,
            "b": 5,
            "c": 6
          }
        ]
      },
      {
        "a": 4,
        "b": 5,
        "c": [
          {
            "a": 1,
            "b": 2,
            "c": 3
          },
          {
            "a": 4,
            "b": 5,
            "c": 6
          }
        ]
      }
    ]
  }
}

,我需要使用以下路径列表选择性地剪切它:

foo 
object.c 
objectWithObjects.a
objectWithObjects.c.b
objectWithObjects.c.c
array1.a
objectWithNestedArray.foo
objectWithNestedArray.array2.b
objectWithNestedArray.array2.c.b

结果将是:

{
  "foo": "bar",
  "object": {
    "c": "d",
  },
  "objectWithObjects": {
    "a": 1,
    "c": {
      "b": 2,
      "c": 3
    }
  },
  "array1": [
    {
      "a": 1,
    },
    {
      "a": 4,
    },
    {
      "a": 7,
    }
  ],
  "objectWithNestedArray": {
    "foo": "bar",
    "array2": [
      {
        "b": 2,
        "c": [
          {
            "b": 2,
          },
          {
            "b": 5,
          }
        ]
      },
      {
        "b": 5,
        "c": [
          {
            "b": 2,
          },
          {
            "b": 5,
          }
        ]
      }
    ]
  }
}

我在使用ruby hash时一直在寻找ruby解决方案,但如有必要,我可以在前端使用javascript / JSON进行操作。有没有可以做到这一点的库?也许只有几行代码足以完成这项工作?

0 个答案:

没有答案