这是我的值JSON数组的字符串形式(不是JSON对象)
value= "[{\"a\":\"test a\"},{\"b\":\"test b updated\"}]"
当我尝试使用
将其转换为JSON时value=value.to_json
#value= "\"[{\\\"a\\\":\\\"test a\\\"},{\\\"b\\\":\\\"test b updated\\\"}]\""
但我希望我的价值像这样
{"a":"test a","b":"test b updated"}
有任何建议吗?
答案 0 :(得分:1)
首先,您需要将JSON字符串转换为Ruby值:
arr = JSON.parse(value)
# => [ { "a" => "test a" },
# { "b" => "test b updated" } ]
这将返回一个Ruby数组,其项目为哈希值。
接下来,您需要将哈希值合并为一个哈希:
combined_hash = arr.reduce({}, &:merge)
# => { "a" => "test a",
# "b" => "test b updated" }
最后,将哈希值转换回JSON:
puts combined_hash.to_json
# => {"a":"test a","b":"test b updated"}
所有在一起:
arr = JSON.parse(value)
combined_hash = arr.reduce({}, &:merge)
puts combined_hash.to_json
# => {"a":"test a","b":"test b updated"}
您可以在此处看到它:http://ideone.com/l5BAiw
答案 1 :(得分:0)
您需要使用以下内容:
json = JSON.parse(value).to_s
另外添加to_s以将其转换为字符串。