在HTML中显示格式化的JSON,而无需JavaScript(RubySinatra)。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在HTML中显示格式化的JSON,而无需JavaScript(RubySinatra)。相关的知识,希望对你有一定的参考价值。
我正在用Ruby + Sinatra构建一个实践性的Web API,我希望我的响应能以格式化的JSON(GeoJSON)显示在一个ERB模板中。到目前为止,我已经能够处理请求并正确格式化响应。
然而,我无法找到一种方法来将端点中的内容显示为JSON字符串,它显示为一个常规的字符串(对于JSON来说很难读取)。有没有什么方法可以在Ruby+Sinatra中不使用javascript来实现呢?
这是我目前在这两个文件中的情况。
# app.rb
before do
json = File.open("data/cities.json").read
data = JSON.parse(json)
data.each do |item|
geoarray["features"].append(json_to_geojson(item))
end
@geojson = geoarray.to_json
end
...
get('/myendpoint') do
@activities = @geojson
erb :cities
end
<!--cities.erb-->
<%= @activities %>
答案
尝试 <%= @activities.to_json.html_safe %>
另一答案
你可以通过使用以下方法让JSON字符串看起来更漂亮 JSON.pretty_generate()
方法。
# app.rb
before do
json = File.open("data/cities.json").read
data = JSON.parse(json)
data.each do |item|
geoarray["features"].append(json_to_geojson(item))
end
# use pretty_generate instead of to_json
@geojson = JSON.pretty_generate(geoarray)
end
并在你的erb文件中。不是简单的显示,而是在你的erb文件中添加 <pre>
标签。
<!--cities.erb-->
<pre><%= @activities %></pre>
以上是关于在HTML中显示格式化的JSON,而无需JavaScript(RubySinatra)。的主要内容,如果未能解决你的问题,请参考以下文章
HTML/Javascript 表单 如何将表单数据序列化为 JSON 并在类中显示?
Laravel 以 json 格式显示/返回数据,而不是以 html 格式显示/返回数据