当我尝试以上面显示的格式返回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\",
...
当我使用“p result”代替(没有.to_json)时,我得到以下内容:
"is_claimed"=>true,
"rating"=>3.5,
"mobile_url"=>"http://m.yelp.com/biz/rudys-barbershop-seattle",
....
第一个使用'\'字符,第二个使用哈希火箭。如何以正常格式返回JSON?
答案 0 :(得分:4)
您看到的格式是因为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
与puts
的一些其他信息:p vs puts in Ruby
答案 1 :(得分:0)
那是因为您使用p
来显示string
的内容。
p "hi\"there"
"hi\"there"
=> "hi\"there"
[2] pry(main)> puts "hi\"there"
hi"there
此外,您可能应该了解方法as_json
和to_json
之间的区别,请参阅http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/以了解其中的差异。
答案 2 :(得分:0)
不确定“正常格式”是什么意思,我有时会把它说出来
puts JSON.generate(result)
以友好的格式获取它。