Я хочу разбить строку JSON на меньшие объекты.У меня есть два сервера, один из которых служит интерфейсом веб-приложения для всего приложения, а другой - хранилище / база данных.
Я могу получать информацию из хранилища в веб-приложение как JSON,но после этого я не знаю, как его вернуть.
Вот пример возвращаемого JSON:
{"respPages":[{"page":{"page_url":"http://www.google.com/","created_at":"2011-08-10T11:00:19Z","website_id":1,"updated_at":"2011-08-10T11:00:19Z","id":1}},{"page":{"page_url":"http://www.blank.com/services/content_services/","created_at":"2011-08-10T11:02:46Z","website_id":1,"updated_at":"2011-08-10T11:02:46Z","id":2}}],"respSite":{"website":{"created_at":"2011-08-10T11:00:19Z","website_id":null,"updated_at":"2011-08-10T11:00:19Z","website_url":null,"id":1}},"respElementTypes":[{"element_type":{"created_at":"2011-08-10T11:00:19Z","updated_at":"2011-08-10T11:00:19Z","id":1,"tag_name":"head"}},
В JSON есть четыре тега:
page
website
elementType
elementData
Я хотел бы создать четыре массива и заполнитьих с объектом, который соответствует этим тегам.
Я бы изобразил, что код выглядит примерно так:
#Get the json from repo using net/http
uri = URI.parse("http://127.0.0.1:3007/repository/infoid/1.json")
http = Net::HTTP.new(uri.host, uri.port)
response = http.request(Net::HTTP::Get.new(uri.request_uri))
@x = response.to_hash
@pages = Array.new
@websites= Array.new
@elementDatas = Array.new
@elementTypes = Array.new
#enter code here`#For every bit of the hash, find out what it is and allocate it accordingly
@x.each_with_index do |e,index|
if e.tagName == pages #Getting real javascripty here. There must be someway to check the tag or title of the element
@pages[index]=e
end
Моя цель для возвращаемого значения состоит в том, чтобы иметь четыре массива, каждый из которых содержит разные типыобъектов:
@pagesArray[1]
должен содержать первое вхождение объекта страницы в строке JSON.Затем сделайте то же самое с остальными.
Конечно, мне нужно разбить объект дальше, но как только я смогу разбить верхний уровень и классифицировать их, я смогу пойти глубже.
В JSON уже есть заголовки тегов respPages
и respWebsites
, которые группируют все объекты.
Как превратить JSON обратно в объекты в Ruby и ссылаться на них, используя что-то вроде имени тега?