繁体   English   中英

Ruby:在现有的 JSON 字符串中集成一个 ruby​​ 键/值哈希

[英]Ruby: integrate a ruby key/value-hash in an existing JSON string

JSON 字符串:

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

我总是得到一个:

语法错误,意外的 '}',期望 => 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"
    }
}

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

非常感谢。

试试jsonString.merge(my_hash)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM