1

上記の形式でJSONを返そうとすると、JSONは次のようになります。

result = JSON.parse(data)
p result.to_json

#json from .to_json
\"is_claimed\": true,
\"rating\": 3.5,
\"mobile_url\": \"http: //m.yelp.com/biz/rudys-barbershop-seattle\",
...

代わりに(.to_jsonなしで)「presult」を使用すると、次のようになります。

"is_claimed"=>true,
"rating"=>3.5,
"mobile_url"=>"http://m.yelp.com/biz/rudys-barbershop-seattle",
....

1つ目は「\」文字を持ち、2つ目はハッシュロケットを使用します。JSONを通常の形式で返すにはどうすればよいですか?

4

3 に答える 3

5

表示されている形式は、p情報を出力する方法が原因です。出力をに変更してみてくださいputs

data = '{
  "is_claimed":true,
  "rating":3.5,
  "mobile_url":"http://m.yelp.com/biz/rudys-barbershop-seattle"
}'
result = JSON.parse(data)
puts result.to_json

p編集: vs putspvsPutsのRubyに関するいくつかの追加情報

于 2013-03-26T20:22:27.153 に答える
0

これはp、の内容を表示するために使用しているためですstring

p "hi\"there"
"hi\"there"
=> "hi\"there"
[2] pry(main)> puts "hi\"there"
hi"there

as_jsonまた、メソッドとの違いに注意する必要があります。違いを理解するには、http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/to_jsonを参照してください。

于 2013-03-26T20:22:45.103 に答える
0

「通常のフォーマット」とはどういう意味かわからないので、時々

puts JSON.generate(result)

わかりやすい形式で入手できます。

于 2013-03-27T03:36:10.773 に答える