2016-03-29 121 views
1

的JSON字符串:紅寶石:在現有的JSON字符串整合紅寶石鍵/值哈希

jsonString = {"string1" => {"test1" => "test2"}} 

結果(JSON.pretty_generate)在一個漂亮的印刷:

{ 
    "string1": 
    { 
     "test1": "test2" 
    } 
} 

但當我嘗試兩個數組中的所有元素加入到這個JSON字符串

keys = [:key0, :key1] 
values = [:value0, :value1] 

my_hash = Hash[keys.zip values] 

jsonString = {"string1" => {"test1" => "test2", my_hash}} 

我總是得到一個:

語法錯誤,意外 '}',期待=> jsonString = { 「字符串1」=> { 「測試1」=> 「測試2」,my_hash}}

我本來期望這樣的行爲:

jsonString = {"string1" => {"test1" => "test2", keys[0] => values[0], keys[1] => values[1]}} 

輸出:

{ 
    "string1": 
    { 
     "test1": "test2", 
     "key0": "value0", 
     "key1": "value1" 
    } 
} 

是否有使用散列機制的方式呢?

非常感謝。

回答

1

嘗試jsonString.merge(my_hash)

我的理解是,名爲jsonString的變量實際上是一個散列,而不是一個json字符串。如果您想將該散列轉換爲真正的JSON字符串,則可以導入json模塊(使用require 'json')而不是調用jsonStrong.to_json,但是一旦將散列轉換爲字符串,則更難以進行其他散列。最好將所有哈希值加在一起,然後將結果轉換爲json。

+0

好的,謝謝。我在Ruby中是全新的: - ) –