我如何从JavaScript中读取脚本标记中的JSON?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (48)

我有一个动态生成的页面,我想使用静态JavaScript并将JSON字符串作为参数传递给它。我看到了谷歌使用的这种方法

但是,我应该如何从JavaScript读取JSON字符串?

<html>
  <head>
    <script src="jquery-1.6.2.min.js"></script>
    <script src="myscript.js">{"org": 10, "items":["one","two"]}</script>
  </head>
  <body>
    Hello
  </body>
</html>

在这个JavaScript中,我想使用{"org": 10, "items":["one","two"]}HTML文档中的JSON参数。我不知道最好是用jQuery还是不用。

$(function() {
    // read JSON

    alert("the json is:")
})
提问于
用户回答回答于

我会将脚本声明更改为:

<script id="data" type="application/json">{"org": 10, "items":["one","two"]}</script>

注意类型和ID字段。之后

var data = JSON.parse(document.getElementById('data').innerHTML);

在所有浏览器中都能正常工作。

type="application/json"需要,以防止浏览器解析它,而加载。

用户回答回答于

我结束了这个JavaScript代码独立于jQuery。

var json = document.getElementsByTagName('script');
var myObject = JSON.parse(json[json.length-1].textContent);

扫码关注云+社区