1

次の Ruby データ構造があるとします。

data = { :a => 1, :b => 2 }

... 次の JSON を作成したい:

{"result":[
  {"letter":"a","number":"1"},
  {"letter":"b","number":"2"}
]}

Rails の JBuilder を使用してこれを達成するにはどうすればよいですか?

理想的には、最初にハッシュを配列に変換せずに、ハッシュから JBuilder オブジェクトに直接移動したいと考えています。

4

2 に答える 2

7

それは簡単です。

require 'jbuilder'

data = { :a => 1, :b => 2 }

out = Jbuilder.encode do |json|
    json.result data do |kv|
        json.letter kv[0]
        json.number kv[1]
    end
end

puts out  #=> {"result":[{"letter":"a","number":1},{"letter":"b","number":2}]}
于 2013-09-19T17:08:44.227 に答える
3

キーを値から分離するため、私はこの表記法を好みます。

require 'jbuilder'

data = { :a => 1, :b => 2 }

Jbuilder.encode do |json|
    json.result data do |k, v|
        json.letter k
        json.number v
    end
end

基本的に前の回答と同じですが、少し単純です

于 2015-06-24T04:57:23.673 に答える