如何正确解析JSON-Rails中的特殊字符

时间:2015-01-20 02:03:35

标签: ruby-on-rails ruby json

我在rails中运行SQL查询,然后格式化为返回JSON。但是,只需应用:

respond_to do |format|
  format.html
  format.json { render json: { locations: @results }}
end

在导轨中生成对象,结果格式为:

"locations":[
{
"id":104,
"address":"1 at\u0026t way",
"city_name":"arlington",
"state":"tx",
"zip":76011,
"latitude":32.7499,
"longitude":-97.0894
}
]
}

街道名称变为:at\u0026t way,而不是正确的at&t way

rails如何格式化JSON以允许这样的特殊字符?

1 个答案:

答案 0 :(得分:3)

这正如预期的那样工作,它只是unicode逃离&符号JSON standard的一部分。现在,无论谁打算在另一方解析JSON,都会在解析它所选择的语言时选择正确的&符号。例如,如果有效负载进入不同的rails服务器并且我们使用ruby解析它,它将如下所示:

(我将你的json复制到example-json.json文件中进行演示)

8] pry(main)> JSON.parse(IO.readlines('json-example.json').join)
=> {"locations"=>
  [{"id"=>104,
    "address"=>"1 at&t way",
    "city_name"=>"arlington",
    "state"=>"tx",
    "zip"=>76011,
    "latitude"=>32.7499,
    "longitude"=>-97.0894}]}