JSON-String:
jsonString = {"string1" => {"test1" => "test2"}}
结果(使用JSON.pretty_generate)以漂亮的印刷:
{
"string1":
{
"test1": "test2"
}
}
但是当我尝试将两个数组的所有元素添加到此JSON-String
中时keys = [:key0, :key1]
values = [:value0, :value1]
my_hash = Hash[keys.zip values]
jsonString = {"string1" => {"test1" => "test2", my_hash}}
我总是得到:
语法错误,意外'}',expecting => jsonString = {" string1" => {" TEST1" => " test2",my_hash}}
我原本期望这样的行为:
jsonString = {"string1" => {"test1" => "test2", keys[0] => values[0], keys[1] => values[1]}}
输出:
{
"string1":
{
"test1": "test2",
"key0": "value0",
"key1": "value1"
}
}
有没有办法使用哈希机制?
非常感谢。
答案 0 :(得分:1)
试试jsonString.merge(my_hash)
?
我的理解是,名为jsonString
的变量实际上是一个哈希,而不是一个json字符串。如果您想将该哈希转换为真正的JSON字符串,您可以导入json模块(使用require 'json'
)而不是调用jsonStrong.to_json
,但是一旦您将哈希转换为字符串,它就会#&# 39;更难以获得其他哈希值。最好将所有哈希值一起添加,然后将结果转换为json。