我有一个字符串对象,它基本上是json格式,在尝试打印时,它在控制台中显示为
item =
{
"id": "4c9f83e4-f479-48d0-9f92-3fff70a8f6ba",
"item": "{"business":"1114","class":"Demo","date":"01-01-2014","version":"","data":"dummy","name":"Finance"}"
}
我需要获取业务,类,日期等的值,并将其作为params传递给我的方法。所以我尝试将其转换为哈希,如下所示
hash_item = JSON.parse (item)
并在控制台中输出显示为
The converted hash item is
{"guid"=>"4c9f83e4-f479-48d0-9f92-3fff70a8f6ba", "item"=>"{"business":"1114","class":"Demo","date":"01-01-2014","version":"","data":"Dummy","name":"Finance"}"}
但是当我尝试访问业务的哈希值时
hash_item['item']['business']
显示
"业务"
因为item的值是hash_item中的String。我不确定我的方法是否正确。那么有没有更好的想法或任何输入来检索哈希值。请帮忙。
更新代码:
实际上我正在为我的应用程序实现一个带有right_aws gem的排队机制,队列项返回一个String格式的消息实例。所以在我的控制器中我正在访问队列对象
def next
@receiver = @queue.pop()
if @receiver.present?
respond_with(@receiver)
end
end
我的next.json.erb将是
{
"guid": "<%=@receiver.id%>",
"item": "<%=generate_json_format(@receiver)%>"
}
生成json格式的助手是
def generate_json_format(sender)
(JSON.parse (sender.body.gsub('=>', ':'))).to_json
end