2016-03-29 9 views
1

JSON-文字列:きれいに印刷中(JSON.pretty_generate付き)ルビー:既存のJSON文字列にルビーのキー/値のハッシュを統合

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

結果:

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

しかし、私は、このJSON-文字列

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

my_hash = Hash[keys.zip values] 

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

に2つの配列のすべての要素を追加しようとすると、私はいつもそうだ:

=> jsonString =期待構文エラー、予期しない '}'、{ "文字列1" => { "TEST1" => "TEST2" を、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文字列に変換する場合は、jsonStrong.to_jsonを呼び出すよりjsonモジュール(require 'json'を使用)をインポートできますが、ハッシュを文字列に変換すると他のハッシュを追加するのが難しくなります。すべてのハッシュをまとめてjsonに変換するのが最善です。

+0

よろしくお願いいたします。私は全く新しいルビーです: - ) –

関連する問題