Código JSON minimizado entre dois padrões com regex

Código JSON minimizado entre dois padrões com regex

Vamos pegar um arquivo com, por exemplo:

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

Existe uma maneira de um regex minimizar o código em algo assim:

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

Responder1

Supondo que as duas chaves testsejam realmente únicas (a segunda testsubstituiria a primeira testao analisá-la com um analisador JSON) e que o documento seja um documento JSON bem formado, use jq -cpara produzir uma versão compacta dele.

Aqui, alterei os nomes das chaves para que sejam exclusivas e encapsulei o fragmento JSON em um objeto anônimo:

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

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

O .na linha de comando é um jqfiltro que passa o documento sem modificar o conteúdo.

informação relacionada