Как удалить элемент из JSON с рубином? - PullRequest
0 голосов
/ 10 октября 2018

Для этого json структурирует:

{
  "a_path": {
    "b_path": [
      {
        "id": 1,
        "name": "a"
      },
      {
        "id": 2,
        "name": "b"
      }
    ]
  }
}

Хотите удалить id элемент как:

{
    "a_path": {
      "b_path": [
        {
          "name": "a"
        },
        {
          "name": "b"
        }
      ]
    }
}

Есть ли хороший способ?Я пробовал:

$json_data = JSON.parse(response)["b_path"][0].delete("id")

Но получил такой результат:

"a_path": "1"

1 Ответ

0 голосов
/ 10 октября 2018

Даже если .delete вернет мутированный хеш (чего нет, он возвращает удаленное значение), вы присваиваете $json_data = JSON.parse(response)["b_path"][0].

Просто назначьте базовый хеш и измените его впетля с .each.

json_data = JSON.parse(response)
json_data['a_path']['b_path'].each { |h| h.delete('id') }
json_data
# => the expected hash
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...