从控制器渲染json响应以查看

时间:2019-01-03 09:34:07

标签: ruby-on-rails

我正在使用已经存在的Web服务应用程序。我正在响应以下并在控制器中将响应保存在结果中。我需要将此显示为表格格式,例如状态代码,参数和响应。如何带来json响应以表格形式在导轨中查看?

  

“ {\” statusCode \“:200,\” parameters \“:[{\” name \“:\” Device.Description \“,\” value \“:\” Gateway Device \“,\” dataType \“:0,\” parameterCount \“:1,\” message \“:\” Success \“}}}”“

   respond_to do |format|
    format.json { render :json => result }
  end

2 个答案:

答案 0 :(得分:0)

要保存在控制器中的响应为字符串格式。要将其呈现为JSON,首先需要将其解析为JSON,如下所示:

JSON.parse("{\"statusCode\":200,\"parameters\":[{\"name\":\"Device.Description\",\"value\":\"Gateway Device\",\"dataType\":0,\"parameterCount\":1,\"message\":\"Success\"}]}")

这会将其更改为:

{"statusCode"=>200, "parameters"=>[{"name"=>"Device.Description", "value"=>"Gateway Device", "dataType"=>0, "parameterCount"=>1, "message"=>"Success"}]}

您可以渲染为json:

respond_to do |format|
  format.json { render json: JSON.parse(result) }
end

答案 1 :(得分:0)

使用js库有很多更好的选择,但是如果您只想使用jquery,则应该使用纯HTML创建表(为tbody提供ID)。然后使用js创建一个字符串,并将其与所需的每个属性连接起来,例如:

var tr = '<tr><td>';
tr += jsonResponse.firstAttribute;
tr += '</td><td>';
tr += jsonResponse.secondAttribute;
tr += '</td>';
...
$('#you-table-body-id').append(tr);

这样做,您将连接包含您要在网站中展示的数据的html块。