如何在RubyonRails中将JSON文件转换为html页面?

如何在RubyonRails中将JSON文件转换为html页面?,html,ruby-on-rails,json,ruby,Html,Ruby On Rails,Json,Ruby,我正在写一个网站,它将一个JSON文件的链接作为URL get参数,并将其转换为一个好看的html页面,即不是一个表。其中一部分需要递归函数来解析JSON文件。我希望键看起来像html标题。数组中的每个值位于单独的行上,字符串具有一个粗体键,该键的值位于同一行上。最重要的是,我希望页面缩进JSON文件的内容,就像您希望缩进JSON文件一样。我认为这个递归函数可以很好地将JSON文件转换为漂亮的html页面 def parse(hash, iteration=0 ) iteration +

我正在写一个网站,它将一个JSON文件的链接作为URL get参数,并将其转换为一个好看的html页面,即不是一个表。其中一部分需要递归函数来解析JSON文件。我希望键看起来像html标题。数组中的每个值位于单独的行上,字符串具有一个粗体键,该键的值位于同一行上。最重要的是,我希望页面缩进JSON文件的内容,就像您希望缩进JSON文件一样。

我认为这个递归函数可以很好地将JSON文件转换为漂亮的html页面

def parse(hash, iteration=0 )
    iteration += 1
    output = ""
    hash.each do |key, value|

        if value.is_a?(Hash)
            output += "<div class='entry' style='margin-left:#{iteration}em'> <span style='font-size:#{250 - iteration*20}%'>#{key}: </span><br>"
            output += parse(value,iteration)
            output += "</div>"
        elsif value.is_a?(Array)
            output += "<div class='entry' style='margin-left:#{iteration}em'> <span style='font-size:#{250 - iteration*20}%'>#{key}: </span><br>"
            value.each do |value|
                if value.is_a?(String) then
                    output += "<div style='margin-left:#{iteration}em'>#{value} </div>"
                else
                    output += parse(value,iteration-1)
                end
            end
            output += "</div>"

        else
            output += "<div class='entry' style='margin-left:#{iteration}em'> <span style='font-weight: bold'>#{key}: </span>#{value}</div>"
        end
    end
    return output
end
函数检查散列中的每个值,并执行以下三项操作之一:

如果是数组,则在新行上输出每个数组元素 如果是字符串,则在同一行上输出键和值 如果是另一个哈希,则调用同一个函数 在此之后,您必须将@output变量输出到视图文件的屏幕上:

<%= @output.html_safe %>
迭代所做的是跟踪函数被调用的次数,以便正确缩进输出


我希望这能帮助其他尝试做同样事情的人。

大家好,首先我很抱歉这个问题不适合堆栈溢出。我想做的是回答我自己的问题。请看下面我的回答,这样其他和我有相同问题的人就可以有一个很好的例子来说明如何解决这个问题。请你能告诉我如何重写我的问题,记住我贴出的答案吗?另外@AndreyDeineko我知道JSON和HTML是两种完全不同的东西,但在我自己的例子中,需要将一种文件格式转换为另一种文件格式。“我不认为你的评论很有成效。”AndreyDeineko的评论应该要求以建设性的方式进行澄清或批评。如果你觉得这个问题不好,你可以投反对票。像您这样发表评论对Stack Overflow社区的质量或用户体验没有任何帮助或贡献。这是不必要的。@Brad我以前读过这篇文章,但在再次阅读之后,我仍然不明白为什么我的文章不是一个好问题。我并不是不同意你只是想学习。我知道在短短几分钟内,至少有7人投了反对票,所以一定是出了什么问题,但我不知道你能帮我解释一下什么问题吗?@KNejad stackoverflow大厦的另一个网站叫做。我想你的问题很适合这里
<%= @output.html_safe %>