[英]How do I access a hash inside an array inside a ruby object?
我正在使用publicactivity gem来审核应用程序中的活动。
使用MongoDB,下面的数据都不是真实的-只是真实数据的代表。
我塞了一些这样的数据:
"changes" : [
{
"oldFirst" : "Aaron2",
"oldLast" : "Aardvark2",
"oldCity_id" : "Bogota, TN",
"oldZip_code" : 38007,
"oldPhone" : [
"9993339999",
"4442224443"
],
"oldStreet1" : "1111 Brighton Clopton St",
"oldStreet2" : "Suite 100",
"oldEmail" : [
"uk@tel.com"
],
"oldType" : "customer",
"oldLatitude" : "36.1625531",
"oldLongitude" : "-89.4362431",
"oldCust_notes" : "",
"oldAccount_id" : ""
},
{
"newFirst" : "Aaron",
"newLast" : "Aardvark",
"newCity_id" : "Brighton, TN",
"newZip_code" : 38011,
"newPhone" : [
"9993338888",
"4442223334"
],
"newStreet1" : "1111 Brighton Clopton Dr.",
"newStreet2" : "",
"newEmail" : [
"uk@tel.com"
],
"newType" : "customer",
"newLatitude" : "35.4558615",
"newLongitude" : "-89.68162079999999",
"newCust_notes" : "",
"newAccount_id" : ""
}
]
那么我该如何谈论这些要素呢?
我试过了:
<%= activity.changes[0]["oldFirst"] %>
<%= activity.changes["oldFirst"] %>
<%= activity.changes.oldFirst %>
<% if activity.changes.any?
activity.changes.each do |c|
%>
<%= c["oldfirst"] %>
<%end%>
<%end%>
等等
不断地我尝试了我所知道的组合-我得到了这个:
no implicit conversion of String into Integer
串成整数?! WTF? 这些都是字符串类型的数据,而我试图将其作为字符串类型的数据进行访问-我不明白为什么它认为我拥有或想要Integer值。
我可以帮忙吗?
原来我在数据库中有一个坏条目,就像:
[[{},{}]]
使用我使用的任何字体将它们都紧密地结合在一起时,很难在终端中看到双括号。
一旦删除了单个条目,其余条目都留在原处(格式为[{},{}]),此方法就可以正常工作
activity.changes [0] [ “oldFirst”]
等等
您在此处发布的是JSON数据结构,而不是Ruby对象。
您必须首先使用JSON解析它,然后可以通过以下方式访问它:
require 'json'
activity = JSON.parse( json_string )
activity.changes[0]["oldFirst"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.