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\",
...

当我改用“p result”(没有.to_json)时,我得到以下信息:

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

第一个有一个'\'字符,第二个使用哈希火箭。如何以正常格式返回 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的一些附加信息putsp vs puts in 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和之间的区别to_json,请参阅http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/以了解区别。

于 2013-03-26T20:22:45.103 回答
0

不确定您所说的“正常格式”是什么意思,我有时会说

puts JSON.generate(result)

以友好的格式获取它。

于 2013-03-27T03:36:10.773 回答