
Возьмем, к примеру, файл:
"test": [
{
}
],
"test": [
{
"name":"bob",
"age":21
}
]
Есть ли способ с помощью регулярного выражения минимизировать код до чего-то вроде этого:
"test": [{}],
"test": [{"name":"bob","age":21}]
решение1
Предполагая, что два ключа test
действительно уникальны ( test
иначе второй ключ переопределил бы первый test
при его анализе с помощью анализатора JSON), и что документ является правильно сформированным документом JSON, используйте jq -c
для создания его компактной версии.
Здесь я изменил имена ключей так, чтобы они были уникальными, и инкапсулировал фрагмент JSON в анонимный объект:
$ cat file.json
{
"test1": [
{}
],
"test2": [
{
"name": "bob",
"age": 21
}
]
}
$ jq -c . file.json
{"test1":[{}],"test2":[{"name":"bob","age":21}]}
В .
командной строке находится jq
фильтр, который пропускает документ, не изменяя его содержимое.