Сохранить выбранные (удалить ненужные) свойства из JSON - PullRequest
0 голосов
/ 09 апреля 2020

Я получил огромный JSON, и из-за ограничения в 65536 байтов, я должен обрезать его на первом шаге. Есть много ненужных свойств, и только некоторые из них полезны для меня. Поэтому я пытаюсь сохранить некоторые известные свойства (как ключ, так и значение), удалив все остальные, используя любой из JSONpath или JavaScript или Bash + JQ.

Пример:

{
   "vm":[
      {
         "name":"demo1",
         "cpu":"2",
         "ram":"4",
         "something1":"x",
         "disks":[
            {
               "name":"sda",
               "size":"10",
               "something1":"x"
            },
            {
               "name":"sdb",
               "size":"20",
               "something2":"x"
            }
         ]
      },
      {
         "name":"demo2",
         "cpu":"4",
         "ram":"8",
         "something1":"x",
         "something2":"x",
         "something3":"x",
         "disks":[
            {
               "name":"sda",
               "size":"10",
               "something1":"x"
            },
            {
               "name":"sdb",
               "size":"20"
            }
         ]
      }
   ]
}

Обязательные поля:

$.vm[*].name
$.vm[*].cpu
$.vm[*].ram
$.vm[*].disks[*].size

Таким образом, целевой результат:

{
   "vm":[
      {
         "name":"demo1",
         "cpu":"2",
         "ram":"4",
         "disks":[
            {
               "size":"10"
            },
            {
               "size":"20"
            }
         ]
      },
      {
         "name":"demo2",
         "cpu":"4",
         "ram":"8",
         "disks":[
            {
               "size":"10"
            },
            {
               "size":"20"
            }
         ]
      }
   ]
}

Заранее спасибо.

...