我有像
这样的对象{"Result":[{
"Links":[{
"UrlTo":"http://www.example.com/",
"Visited":1364927598,
"FirstSeen":1352031217,
"PrevVisited":1362627231,
"Anchor":"example.com",
"Type":"Text",
"Flag":[],
"TextPre":"",
"TextPost":""
}],
"Index":0,
"Rating":0.001416,
"UrlFrom":"http://www.exampletwo.com",
"IpFrom":"112.213.89.105",
"Title":"Example title",
"LinksInternal":91,
"LinksExternal":51,
"Size":5735
}]}
我有一个带有所有按键的模型。
UrlTo,Visited,FirstSeen,PrevVisited,Anchor,Type,TextPre,TextPost,Index,Rating,UrlFrom,IpFrom,Title,LinksInternal,LinksExternal,Size
我理解如何在没有这一点的情况下将其保存到数据库中......
"Links":[{
"UrlTo":"http://example.com/",
"Visited":1364927598,
"FirstSeen":1352031217,
"PrevVisited":1362627231,
"Anchor":"example.com",
"Type":"Text",
"Flag":[],
"TextPre":"",
"TextPost":""
}],
不确定如何使用嵌套对象保存它。
我在Google和SO上搜索过,找不到任何东西,这样做的正确方法是什么?我应该将嵌套对象移动到上面的对象中吗?我没有必要嵌套......
提前致谢
答案 0 :(得分:0)
看起来你想要保存链接,所以我会在提供的json中循环结果/链接,并根据链接创建一个新的哈希。
我在下面假装你的json在一个名为input.json的文件中 - 但你显然只是解析文本或使用现有的JSON对象
require 'json'
json = JSON.parse File.read("input.json")
links = json["Result"].map do |result|
result["Links"].map {|link| link }
end.flatten
hash = {"Links" => links}
puts hash
这会创建对象:
{"Links"=>[{"UrlTo"=>"http://www.example.com/", "Visited"=>1364927598, "FirstSeen"=>1352031217, "PrevVisited"=>1362627231, "Anchor"=>"example.com", "Type"=>"Text", "Flag"=>[], "TextPre"=>"", "TextPost"=>""}]}