Ruby:在现有的JSON字符串中集成ruby key / value-hash

时间:2016-03-29 22:58:32

标签: arrays ruby json hash

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"
    }
}

有没有办法使用哈希机制?

非常感谢。

1 个答案:

答案 0 :(得分:1)

试试jsonString.merge(my_hash)

我的理解是,名为jsonString的变量实际上是一个哈希,而不是一个json字符串。如果您想将该哈希转换为真正的JSON字符串,您可以导入json模块(使用require 'json')而不是调用jsonStrong.to_json,但是一旦您将哈希转换为字符串,它就会#&# 39;更难以获得其他哈希值。最好将所有哈希值一起添加,然后将结果转换为json。