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

问题描述

我有一个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","Sitz": "Wil (SG)","UID": "CHE‑102.012.121"
        },{
            "Nr.": "3","Firma": "Bluamawerkstatt zur Linde Marianne Bislin-Lieberherr","Sitz": "Pfäfers","UID": "CHE‑217.602.289"
        },]
}

我想向每个对象添加如下所示的属性和值:

"X": ""

最后,对象看起来像这样:

    {
        "Nr.": "2","UID": "CHE‑102.012.121","X":""
    },

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

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

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

解决方法

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

""

,

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

^(\s+)("UID".*$)
  • (\s+):第1组:匹配前导空格
  • ("UID".*$):第2组:匹配UID的内容。

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

$1$2\n$1"X": ""
,
  1. 选择"UID"
  2. 使用菜单选择> 选择所有出现次数
  3. 按键结束 逗号 输入
  4. 键入"X": ""