Как получить поле второго уровня из файла json, используя ruby - PullRequest
0 голосов
/ 02 февраля 2012

Я работаю с JSON Gem в рубине. Я пытаюсь напечатать поле второго уровня, например [адрес / город / born_in]. Мой код рубина

json = File.read('person.json')
person = JSON.parse(json)
pp person
puts person["address"]["city"]["born_in"]

Мой файл json выглядит следующим образом ..,

{ "FirstName": "Джон", "LastName": "Смит", "Возраст": 25, "адрес":[ { "streetAddress": "21 2nd Street", «Состояние»: «Нью-Йорк», "PostalCode": "10021" }, { "город":{ "born_in": "Нью-Йорк", "Living_in": "Мумбаи" } } ] }

Показывает следующую ошибку ..,

parsingjson.rb:15:in `[]': can't convert String into Integer (TypeError)
        from parsingjson.rb:15:in `<main>'

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Ваше поле address является массивом. Вы должны использовать индексы для ссылки на его элементы.

puts person["address"][0]["streetaddress"]
puts person["address"][1]["city"]["born_in"]
0 голосов
/ 02 февраля 2012

результат person ['address'] - Array, вы можете использовать это

puts person['address'][1]['city']['born_in']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...