在一个页面(API页面)上,我有一个PHP数组,如下所示:
$arr = array("headline1" =>
array("name" => "Headline 1",
"description" => "Description of headline 1",
"items" => array(
array("name"=>"John", "lastname"=>"Doe"),
array("name"=>"Peter", "lastname"=>"Pan")
)
),
"headline2" => array("name" => "Headline 2",
"description" => "Description of headline 2",
"items" => array(
array("name"=>"Alexander", "lastname"=>"Doe"),
array("name"=>"Steven", "lastname"=>"Smith")
)
),
"headline3" => array("name" => "Headline 3",
"description" => "Description of headline 3",
"items" => array(
array("name"=>"John", "lastname"=>"Doeh"),
array("name"=>"Peter", "lastname"=>"Pans")
)
)
);
脚本根据这个数组创建json编码版本:
echo json_encode($arr);
所以,我的问题是其他页面上的javascript。我想使用jQuery$.getJSON函数检索这个数据,并使var像这样:
var categoryData = {
headline1: {
name: "Headline 1",
description: "Description of headline 1",
items: [
{
name: "John",
lastname: "Doe"
},
{
name: "Peter",
horoscope: "Pan"
}
]
},
headline2: {
name: "Headline 2",
description: "Description of headline 2",
items: [
{
name: "Alexander",
lastname: "Doe"
},
{
name: "Steven",
horoscope: "Smith"
}
]
},
headline3: {
name: "Headline 3",
description: "Description of headline 3",
items: [
{
name: "John",
lastname: "Doeh"
},
{
name: "Peter",
horoscope: "Pans"
}
]
}
};
我如何用jQuery$.getJSON函数实现这一点呢?
编辑:
我的另一个Javascript函数(jQuery mobile函数)
function showCategory( urlObj, options )
{
var categoryData = [];
$.getJSON('http://localhost/tst/sig.php', function(json) {
categoryData = json;
});
var categoryName = urlObj.hash.replace( /.*category=/, "" ),
// Get the object that represents the category we
// are interested in. Note, that at this point we could
// instead fire off an ajax request to fetch the data, but
// for the purposes of this sample, it's already in memory.
category = categoryData[ categoryName ],
// The pages we use to display our content are already in
// the DOM. The id of the page we are going to write our
// content into is specified in the hash before the '?'.
pageSelector = urlObj.hash.replace( /\?.*$/, "" );
if ( category ) {
// Get the page we are going to dump our content into.
var $page = $( pageSelector ),
// Get the header for the page.
$header = $page.children( ":jqmData(role=header)" ),
// Get the content area element for the page.
$content = $page.children( ":jqmData(role=content)" ),
// The markup we are going to inject into the content
// area of the page.
markup = "<p>" + category.description + "</p>",
// The array of items for this category.
cItems = category.items,
// The number of items in the category.
numItems = cItems.length;
// Generate a list item for each item in the category
// and add it to our markup.
for ( var i = 0; i < numItems; i++ ) {
markup += "<div data-role='collapsible' data-theme='a' data-content-theme='e'><h3>" + cItems[i].name + "</h3><p>"+ cItems[i].horoscope +"</p></div>";
}
markup += "</ul><p><a href='#one' data-rel='back' data-role='button' data-inline='true' data-icon='back'>Vratite se nazad</a></p> ";
// Find the h1 element in our header and inject the name of
// the category into it.
$header.find( "h1" ).html( category.name );
// Inject the category items markup into the content element.
$content.html( markup );
// Pages are lazily enhanced. We call page() on the page
// element to make sure it is always enhanced before we
// attempt to enhance the listview markup we just injected.
// Subsequent calls to page() are ignored since a page/widget
// can only be enhanced once.
$page.page();
// Enhance the listview we just injected.
$content.find( ":jqmData(role=collapsible)" ).collapsible();
$content.find( ":jqmData(role=button)" ).button();
// We don't want the data-url of the page we just modified
// to be the url that shows up in the browser's location field,
// so set the dataUrl option to the URL for the category
// we just loaded.
options.dataUrl = urlObj.href;
// Now call changePage() and tell it to switch to
// the page we just modified.
$.mobile.changePage( $page, options );
}
}
jQuery.getJSON
是异步的,需要一个回调函数,您不能直接将结果赋给变量。要使用它,您需要将PHP脚本的输出变成一个JSON字符串--在“Object Literal”前面没有“var catData=
”,后面没有分号。另外,不要忘记为JSON提供适当的MIME类型。
本文向大家介绍JavaScript从JSON数据创建数组?,包括了JavaScript从JSON数据创建数组?的使用技巧和注意事项,需要的朋友参考一下 要根据JSON数据创建数组,请使用from JavaScript的概念。假设以下是我们的数据- 以下是根据上述数据创建数组的代码- 示例 要运行上述程序,您需要使用以下命令- 在这里,我的文件名为demo82.js。 输出结果 这将产生以下输出-
问题内容: 我正在尝试使用jQuery UI创建动态菜单。 我将从JSON文件中获取条目并创建菜单项。在大规模尝试之前,我决定做一个小演示。这是我的小提琴,它按照我想要的方式工作。现在,我无法将其与JSON文件一起使用。 工作场所 这是JSON 我如何使用JSON中的值设计我的整个菜单,其中Li类似于以下内容。 编辑: 这个问题听起来好像我还没有尝试过,但是我已经尝试过。它只是我无法理解的JSON
“我正在设置一个文件浏览器,并将文件夹的名称保存在数据库中。任何数量的文件夹都可以保存在数据库中,从保存的数据中,我想创建一个json树。 这是我的数据库表结构 parent\u id是一个外键,用于引用文件夹id。 这是我试图从上述数据库创建的json树结构,将来将添加更多父文件夹和子文件夹。是否可以从上面的表结构中创建json树?有人能帮我吗?
问题内容: 我想获得像这样的Hashtable的JSON表示形式: 结果是: 但是,如果将JSON字符串转换回去,则不会得到HashTable,而会得到PSCustomObject。 那么,如何可靠地序列化上述Hashmap? 问题答案: $json = @{Path=”C:\temp”; Filter=”*.js”} | ConvertTo-Json
问题内容: 我有一个具有以下布局的SQL Server 我已经从该博客中获取了以下代码,以便根据我希望使用的数据创建JSON对象,但是他的数据存储方式有所不同。如何创建从数据库中提取的同一对象? 我猜我需要使该文件为.cshtml文件而不是.js文件,并使用此文件: 但是,如何修改此代码以产生相同的JSON对象? 这是博客中的相关代码,我的尝试如下: 编辑: 我现在正在为GetEvents命令使用
问题内容: 我终于从包含许多json对象的文件中获得了我需要的数据输出,但是当它在数据中循环时,我需要一些帮助将以下输出转换为单个数据帧。这是产生输出的代码,包括输出外观的示例: 原始数据: 运行上面的命令时,我将获得示例输出,我希望将其存储为3列的pandas数据框中。 因此,以下代码似乎更接近,因为如果我在列表中传递并转置df,它会给我一个时髦的df。关于如何正确调整此形状的任何想法吗? 数据