Javascript 如何在getJson之外的全局字符串中调用JSON对象数据? 更新
这是我的结构: FILE.jsonJavascript 如何在getJson之外的全局字符串中调用JSON对象数据? 更新,javascript,jquery,json,Javascript,Jquery,Json,这是我的结构: FILE.json { "Page": [ { "Id": 0, "IsActive":true, "PageName":"crosstownrunning", "PageURL":"crosstownrunning"
{
"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是对象。问题可能是,为什么页面是数组?可能是dupPage.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);
});