Добавление кавычек в массив json и добавление ключа атрибута с помощью jq - PullRequest
0 голосов
/ 25 апреля 2018

Это мой оригинальный JSON:

{
"type": "type1",
"name": "abc",
"features": [
{ "type": "Feature", "properties": { "district": "d1", "district_code": "101", "block_code": "1010070" }},
{ "type": "Feature", "properties": { "district": "d1", "district_code": "101", "block_code": "1010100" }}]
}

Мой ожидаемый результат:

[
  {
    "Data": "{\"properties\":{\"district\":\"d1\",\"district_code\":\"101\",\"block_code\":\"1010070\"}}"
   },
  {
    "Data": "{\"properties\":{\"district\":\"d1\",\"district_code\":\"101\",\"block_code\":\"1010100\"}}"
  }
]

Пока я могу добавлять цитаты только по:

.features[] | del(.type) | tojson

, который только даст мне:

"{\"properties\":{\"district\":\"d1\",\"district_code\":\"101\",\"block_code\":\"1010070\"}}"
"{\"properties\":{\"district\":\"d1\",\"district_code\":\"101\",\"block_code\":\"1010100\"}}"

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

1 Ответ

0 голосов
/ 25 апреля 2018

jq подход:

jq '.features | map(del(.type) | {Data: tojson})' file.json

Или то же самое с массивом конструкция [...]:

jq '[.features[] | del(.type) | {Data: tojson}]' file.json

Выход:

[
  {
    "Data": "{\"properties\":{\"district\":\"d1\",\"district_code\":\"101\",\"block_code\":\"1010070\"}}"
  },
  {
    "Data": "{\"properties\":{\"district\":\"d1\",\"district_code\":\"101\",\"block_code\":\"1010100\"}}"
  }
]
...