J'ai un tableau 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"
        },
    ]
}

Je veux ajouter à chaque objet un attribut et une valeur qui ressemblent à ceci:

"X": ""

À la fin, les objets ressembleraient à ceci:

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

J'ai réussi à filtrer le dernier attribut de mon json avec cette regex, mais je pense que je suis encore loin d'une solution:

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

J'utilise la fonction de recherche et de remplacement de VSCode qui prend en charge le filtrage regex.

1
Nightscape 27 sept. 2020 à 16:29

2 réponses

Meilleure réponse

Je pense que vous compliquez les choses en utilisant les regex ici. Vous pouvez utiliser n’importe quel langage de programmation pour ajouter facilement l’élément X avec "" à chaque objet de Tabelle1 . J'ai utilisé Javascript ici pour la démo. Si vous avez toujours besoin de l'expression régulière, vous pouvez essayer celui-ci.

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);
1
Always Sunny 27 sept. 2020 à 14:10

Si vous utilisez regex, vous devez utiliser le groupe de capture.

^(\s+)("UID".*$)
  • (\s+): Groupe1: correspond aux espaces de début
  • ("UID".*$): Groupe2: correspond au contenu de UID.

Ensuite, vous utilisez la substitution suivante (visual-studio-code).

$1$2\n$1"X": ""
1
Thân LƯƠNG 27 sept. 2020 à 13:51