Minimierter JSON-Code zwischen zwei Mustern mit regulären Ausdrücken

Minimierter JSON-Code zwischen zwei Mustern mit regulären Ausdrücken

Nehmen wir zum Beispiel eine Datei mit:

                        "test": [
                           {
                           }
                        ],
                        "test": [
                           {
                              "name":"bob",
                              "age":21
                           }
                        ]

Gibt es eine Möglichkeit, den Code mit einem regulären Ausdruck auf etwa Folgendes zu reduzieren:

                        "test": [{}],
                        "test": [{"name":"bob","age":21}]

Antwort1

Vorausgesetzt, die beiden Schlüssel testsind tatsächlich eindeutig (der zweite testwürde sonst den ersten beim Parsen mit einem JSON-Parser überschreiben test) und dass das Dokument ein wohlgeformtes JSON-Dokument ist, verwenden Sie , jq -cum eine kompakte Version davon zu erstellen.

Hier habe ich die Namen der Schlüssel geändert, sodass sie eindeutig sind, und das JSON-Fragment in einem anonymen Objekt gekapselt:

$ cat file.json
{
  "test1": [
    {}
  ],
  "test2": [
    {
      "name": "bob",
      "age": 21
    }
  ]
}

$ jq -c . file.json
{"test1":[{}],"test2":[{"name":"bob","age":21}]}

In .der Befehlszeile handelt es sich um einen jqFilter, der das Dokument durchlässt, ohne den Inhalt zu ändern.

verwandte Informationen