将json对象打印为字符串格式

时间:2013-03-28 06:07:12

标签: javascript json ruby-on-rails-3

我尝试将json对象打印成字符串格式。

(实际上我从ruby代码中获取了这些数据值  var data = '<%=[@pro {|c| {x:c.x, y:c.y}}].to_json%>'

在打印数据变量时,我得到的值包含&quot而不是'

var data=[[{&quot;x&quot;:1,&quot;y&quot;:0}]]

我希望以var data="[[{ 'x': '1', 'y': '0' }]]";

格式获取值

使用以下格式获取的代码&quot;删除var dataset=JSON.parse(data.replace(/&quot;/g,'"'));

var dataset = [[{“x”:1,“y”:0}]]

我想打印像[[{ 'x': '1', 'y': '0' }]]这样的值。怎么可能。

2 个答案:

答案 0 :(得分:0)

如果你只使用2个变量,那么你可以这样做:

var data = [[{'x': '<%= @pro.x %>', 'y': '<%= @pro.y %>'}]];  

无需使用to_json方法。

如果您想要对多个值进行字符串化,那么此代码就像魅力一样:

<% array = [[{'x' => 1, 'y' => 1}], [{'x' => 2, 'y' => 2}], [{'x' => 3, 'y' => 3}]] %>
<%= array.to_json %>

他输出:

[[{"x":1,"y":1}],[{"x":2,"y":2}],[{"x":3,"y":3}]]

如果您需要在控制器中按要求发送json,请使用:

def send_json_array
    array = [[{'x' => 1, 'y' => 1}], [{'x' => 2, 'y' => 2}], [{'x' => 3, 'y' => 3}]]
    response.headers['Content-type'] = "text/plain; charset=utf-8"
    render :text => array.to_json
end

答案 1 :(得分:-3)

JSON.stringify将对象转换为json格式。

var dataset =[[{"x":1,"y":0}]]
var JsonData = JSON.stringify(dataset);
相关问题