【问题标题】:how to pass parse json value through javascript如何通过javascript传递解析json值
【发布时间】:2015-07-09 05:51:03
【问题描述】:

我正在尝试从 Rails 应用程序的 JSON 输出字符串中获取 JSON 对象。目前我正在使用 JavaScript:

data = "<%= @chromosomes%>";

但是,由于 JSON 对象的开头和结尾都有引号,因此它不会被呈现为 JSON 对象。相反,它正在做类似的事情

data = "[{"name"=>"YHet","organism_id"=>"4ea9b90e859723d3f7000037"}]"

有没有办法可以删除开头和结尾的引号,以便将对象视为数组而不是字符串?

【问题讨论】:

  • 染色体是什么类型?它是一个原始字符串(如果是,为什么)?它来自 to_json 吗?其他?

标签: javascript ruby-on-rails json


【解决方案1】:

使用JSON.parsestring 解析为JSON 对象。

data = JSON.parse('<%= @chromosomes%>');

【讨论】:

  • '&lt;/script 等不安全。(必须有一些“通用”解决方案..)
【解决方案2】:

在视图中使用 html_safe,没有引号:

<script>
  data = <%= @chromosomes.html_safe %>;
</script>

【讨论】:

  • 可能会导致转义(或缺少)问题,与其他当前答案相同。
  • 怎么样?在问题中,它说,JSON 输出字符串,所以,我期待他在控制器中使用@chromosomes.to_json
  • 假设是假设..我要求 OP 进行澄清。无论如何,它仍然会在&lt;/script 上失败。与我所有的 cmets 一样,我试图引出一些 One True For All Time 方法。
【解决方案3】:

数据 = ''; var 结果 = JSON.parse(data);

如果你执行 console.log(result),它会输出一个 json 对象。 这是一种纯 JavaScript 方法,您需要一个支持将 JSON 解析为本机对象的相当现代的浏览器。

【讨论】:

    猜你喜欢
    • 2013-08-04
    • 2012-12-11
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    相关资源
    最近更新 更多