不同类型的方法来读取JSON

时间:2015-06-03 05:17:25

标签: javascript jquery json

我想在页面加载时加载JSON。我找到了两种方法但是下面两种方法之间的区别在于读取JSON。

<script type="text/javascript" src="assets/json/mainpage.json"></script>
//code for what to do with this

另一种方法是

$.getJSON("assets/json/mainpage.json")

2 个答案:

答案 0 :(得分:0)

您没有找到两种不同的方法。

第一个版本不是它的工作原理。

您可以使用脚本标记加载使用对象表示法的JavaScript对象,所以

<script type="text/javascript" src="assets/json/mainpage.js"></script>

可以包含

var myJSObject = { "key":"value" };

而第二种方法会调用返回(静态或生成)内容的内容,如

{ "key":"value" }

例如

$.getJSON("assets/json/mainpage.php");

会调用服务器进程

header("content-type: application/json");
echo '{ "key":"value" }';

答案 1 :(得分:0)

如果SELECT SUM(time) AS total_time FROM times WHERE 1返回纯JSON,则第一种方法完全错误,因为标记assets/json/mainpage.json旨在提供某种脚本语言,JSON不是脚本语言。但是,看到类似这种方法的东西并非不可能。如果<script>支持JSON填充,主要知道为JSONP,则以下代码段完全有效:

assets/json/mainpage.json

只要服务器在响应标头上将结果作为<script type="text/javascript" src="assets/json/mainpage.json?callback=fn"></script> 返回并将结果包装在.json中,您就可以保留Content-Type: javascript/text扩展名(或任何您喜欢的扩展名)功能。请注意,callback参数的值必须是可全局访问的函数的名称。

第二种方法与对JSON进行ajax调用并解析其内容相同。这是你应该使用的,两者之间。虽然如果没有回复或承诺回应它会毫无用处。

callback

希望它有所帮助。