1

我能够提取 JSON 数据并将其作为脚本放入我的 HTML 文件中。我如何访问这些数据?(将其放入可用变量中)

外部 json.php 文件(填充了 mySQL 数据):

names: 
[
    {"firstName":"Kevin","lastName":"Guo"},
    {"firstName":"Jun Sung","lastName":"Wong"},
    {"firstName":"Anton","lastName":"Ansalmar"},
    {"firstName":"Linda","lastName":"Wong"},
    {"firstName":"George","lastName":"Costanza"}
]

我拉入外部 json 数据的 javascript 代码:

var elm = document.createElement("script");
elm.setAttribute("type", "text/javascript");
elm.src = "http://totallyExternalURL.php";
elm.id="jsonTest";
console.log(elm);
document.getElementsByTagName('head')[0].appendChild(elm);

整个 json 数据作为脚本放在我的脑海中,我怎样才能拉出所有的名字/姓氏进行显示?

4

2 回答 2

1

你正在做的事情实际上被称为jsonp. 通常,您要做的是让脚本返回一个脚本,该脚本使用数据调用您页面上的函数。您可能会发现使用 jQuery 更容易,jsonp或者,如果在您自己的服务器上调用脚本,则使用常规 `json'。

function callback(data) {
  ... do something with the returned data
}

var elm = document.createElement("script");
elm.setAttribute("type", "text/javascript");
elm.src = "http://totallyExternalURL.php?callback=callback";
elm.id="jsonTest";
console.log(elm);
document.getElementsByTagName('head')[0].appendChild(elm);

然后让您的外部脚本返回(注意,您的脚本应该检测回调参数的值并将其用作要调用的函数的名称)。函数的名称和回调参数的值需要相同。

callback( { "names" : 
    [
        {"firstName":"Kevin","lastName":"Guo"},
        {"firstName":"Jun Sung","lastName":"Wong"},
        {"firstName":"Anton","lastName":"Ansalmar"},
        {"firstName":"Linda","lastName":"Wong"},
        {"firstName":"George","lastName":"Costanza"}
    ] });

或者使用 jQuery

 $.getJSON( 'http://totallyExternalURL.php?callback=?', function(data) {
       ... do something with the data ...
 });
于 2011-09-29T04:58:44.390 回答
0

使 js 作为一个函数返回,该函数返回作为数组的 javascript 对象,然后您可以调用该函数并将返回值分配给一个变量。

因此,将 JSON 包装在函数调用中。

查找jsonp。

于 2011-09-29T04:52:29.023 回答