如何提取存在特殊键/值对的所有嵌套json对象?

时间:2019-08-08 13:01:04

标签: json regex

我正尝试使用正则表达式提取所有包含特殊键/值对的嵌套json对象,但是我无法将要使用的表达式包起来。

  {
    "id": 15,
    "modificationDate": "2017-03-13T15:14:56.35Z",
    "translations": [
      {
        "id": 29,
        "language": "en"
      },
      {
        "id": 30,
        "language": "nb"
      }
    ]
  },
  {
    "id": 16,
    "modificationDate": "2017-03-13T15:14:49.453Z",
    "translations": [
      {
        "id": 33,
        "language": "en"
      },
      {
        "id": 34,
        "language": "nb"
      },
      {
        "id": 35,
        "language": "nn"
      },
      {
        "id": 36,
        "language": "se"
      }
    ]
  },
  {
    "id": 17,
    "modificationDate": "2017-03-13T15:15:14.157Z",
    "translations": [
      {
        "id": 37,
        "language": "en"
      },
      {
        "id": 39,
        "language": "nn"
      },
      {
        "id": 40,
        "language": "se"
      }
    ]
  }

所以我想以一种有效的方式提取所有包含“ language”:“ se” 的嵌套对象。

1 个答案:

答案 0 :(得分:1)

您的帖子缺少一些核心信息,例如您使用的编程语言。

另一件事是,您的JSON看起来不正确,该JSON中有多个对象。

我认为您不需要正则表达式,我只会做这样的事情(这是Javascript):

if (jsonObject.body) {
  for(let i = 0; i < jsonObject.body.translations.length; ++i) {
        if(jsonObject.body.translations[i].language == "se") {
        // Do what you want with the object, 
        // I just printed the id of the translation
        console.log(jsonObject.body.translations[i].id);
       }
   }
}