Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在getJson之外的全局字符串中调用JSON对象数据? 更新_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何在getJson之外的全局字符串中调用JSON对象数据? 更新

Javascript 如何在getJson之外的全局字符串中调用JSON对象数据? 更新,javascript,jquery,json,Javascript,Jquery,Json,这是我的结构: FILE.json { "Page": [ { "Id": 0, "IsActive":true, "PageName":"crosstownrunning", "PageURL":"crosstownrunning"

这是我的结构:

FILE.json

{
    "Page": [
        {
            "Id": 0,
            "IsActive":true,
            "PageName":"crosstownrunning",
            "PageURL":"crosstownrunning"
        }    
    ]
}
FILE.js

$.noConflict();
jQuery(document).ready(function ($) {

// VARS
var PageTemplate;

// GET JSON
jQuery.getJSON("FILE.json", function (x) {
    // alert(x.Page[0].PageName);  << This works
    PageTemplate = x.Page[0];
});

alert (PageTemplate.PageName);
alert (PageTemplate.PageURL);
// Can I make PageTemplate.anything bring up my JSON data outside getJSON function?

});
$.noConflict();
jQuery(文档).ready(函数($){
//瓦尔斯
var页面模板;
//获取JSON
getJSON(“FILE.json”,函数(x){

//警报(x.Page[0].PageName);您需要使用回调函数,因为
jQuery.getJSON
函数是异步的

jQuery.getJSON("FILE.json", function(x) {
    $('.emptyBox').append(x.Page[0].PageURL);
});

打开调试器并检查是否发送了对文件的请求。同时检查您的文件是否与js文件位于同一路径,因为您尚未指定完整的URI。如果有多个页面,您希望得到什么结果?无论如何,在您的代码
页面中
未定义,x是对象。问题可能是,为什么页面是数组?可能是dup
Page.PageURL
的副本仍然不正确,因为
Page
是一个对象数组,而不是对象本身。他说的是,在调用完成之前,PageTemplate不会包含任何数据,此外,它可能类似于PageTemplate.Page[0].PageUrl我希望能够在jQuery文件中的任何位置调用JSON文件中的变量……而不仅仅是在function@vogomatix我知道他在说什么,但这并不意味着他原来的代码是正确的。@vogomatix要在文件中的任何位置使用它,请将其存储在回调函数中:
PageTemplate=x.Page[0];
但是我不能调用函数外的字符串您需要在函数外的局部变量中保存“x”;不是,抱歉,是异步查询。您不能使用函数外的x!您需要在传输的函数中写入所有代码。code jQuery.getJSON启动ajax查询,并运行到下一个操作。当http获取您的FILE.json时,他启动函数(x){…}从“x”示例中的数据可以看出,它在任何函数之外。我只希望它位于jQuery document.ready函数中
jQuery.getJSON("FILE.json", function (x) {
    alert(x.Page[0].PageName);
});