
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 test
sind tatsächlich eindeutig (der zweite test
würde sonst den ersten beim Parsen mit einem JSON-Parser überschreiben test
) und dass das Dokument ein wohlgeformtes JSON-Dokument ist, verwenden Sie , jq -c
um 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 jq
Filter, der das Dokument durchlässt, ohne den Inhalt zu ändern.