我需要将“漂亮”的JSON转换为紧凑格式,所以我按照以下步骤操作:
temp = JSON.parse(json_string)
jsonstring = temp.to_s
当我解析json_string
时它会抛出
unexpected token
。
这是“漂亮”的版本:
{
"key1" : "value1",
"key2" : "value2"
}
紧凑后的版本:
{"key1"=>"value1","key2"=>"value2"}
当我用Java编写时,我可以使用:,=>
分隔符解析JSON。但Ruby不接受它。
答案 0 :(得分:1)
尝试jsonstring = temp.to_json
,而不是jsonstring = temp.to_s
,它将散列转换为字符串,而不是JSON编码。
答案 1 :(得分:0)
Ruby的JSON允许你写:
JSON[JSON[json_string]]
这相当于:
(JSON.parse(json_string)).to_json
在第一个示例中,JSON查看参数的类,并查看它是否为字符串,如果是,则将其解析为Ruby哈希。然后外部JSON检查其参数,看到它是一个哈希并将其转回JSON字符串。有关详细信息,请参阅JSON[]
。
require 'json'
str = '{
"key1" : "value1",
"key2" : "value2"
}'
puts str
# >> {
# >> "key1" : "value1",
# >> "key2" : "value2"
# >> }
JSON[str] # => {"key1"=>"value1", "key2"=>"value2"}
puts JSON[JSON[str]]
# >> {"key1":"value1","key2":"value2"}