使用正则表达式向所有 json 个对象添加属性

Add attributes to all json objects with a regex

我有一个 json 数组:

{
    "Tabelle1": [
        {
            "Nr.": "1",
            "Firma": "Alba Reisen/Versicherungen/Darlehen H. Kajtazi",
            "Rechtsform": "EIU",
            "Sitz": "Rapperswil-Jona",
            "Kanton": "SG",
            "UID": "CHE‑101.868.757"
        },
        {
            "Nr.": "2",
            "Firma": "Alybaba - Schischa Laden, Aly",
            "Rechtsform": "EIU",
            "Sitz": "Wil (SG)",
            "Kanton": "SG",
            "UID": "CHE‑102.012.121"
        },
        {
            "Nr.": "3",
            "Firma": "Bluamawerkstatt zur Linde Marianne Bislin-Lieberherr",
            "Rechtsform": "EIU",
            "Sitz": "Pfäfers",
            "Kanton": "SG",
            "UID": "CHE‑217.602.289"
        },
    ]
}

我想为每个对象添加一个属性和一个值,如下所示:

"X": ""

最终对象将如下所示:

    {
        "Nr.": "2",
        "Firma": "Alybaba - Schischa Laden, Aly",
        "Rechtsform": "EIU",
        "Sitz": "Wil (SG)",
        "Kanton": "SG",
        "UID": "CHE‑102.012.121",
        "X":""
    },

我设法用这个正则表达式过滤了 json 的最后一个属性,但我认为我离解决方案还很远:

"UID\s*([^\n\r]*)

我正在使用 VSCode 的搜索和替换功能 支持正则表达式过滤。

我认为您在此处使用正则表达式会使事情变得复杂。您可以使用任何编程语言 轻松地将具有""X 元素附加到Tabelle1 中的每个对象。我在这里使用 Javascript 进行演示。如果您仍然需要正则表达式,那么您可以尝试 this 一个。

const json = {
  "Tabelle1": [{
      "Nr.": "1",
      "Firma": "Alba Reisen/Versicherungen/Darlehen H. Kajtazi",
      "Rechtsform": "EIU",
      "Sitz": "Rapperswil-Jona",
      "Kanton": "SG",
      "UID": "CHE‑101.868.757"
    },
    {
      "Nr.": "2",
      "Firma": "Alybaba - Schischa Laden, Aly",
      "Rechtsform": "EIU",
      "Sitz": "Wil (SG)",
      "Kanton": "SG",
      "UID": "CHE‑102.012.121"
    },
    {
      "Nr.": "3",
      "Firma": "Bluamawerkstatt zur Linde Marianne Bislin-Lieberherr",
      "Rechtsform": "EIU",
      "Sitz": "Pfäfers",
      "Kanton": "SG",
      "UID": "CHE‑217.602.289"
    },
  ]
}
json['Tabelle1'].forEach(e => e['X'] = "");
console.log(json);

如果你使用正则表达式,你应该使用捕获组。

^(\s+)("UID".*$)
  • (\s+):Group1:匹配前导空格
  • ("UID".*$): Group2: 匹配 UID.
  • 的内容

之后,您使用以下替换 (visual-studio-code)。

\n"X": ""
  1. Select "UID"
  2. 使用菜单 Selection > Select 所有事件
  3. 按键结束逗号回车
  4. 类型"X": ""