使用jQuery在JSON文件上循环
我试图循环使用这个JSON字符串(它位于一个名为language.JSON的单独JSON文件中),但没有任何效果使用jQuery在JSON文件上循环,jquery,json,Jquery,Json,我试图循环使用这个JSON字符串(它位于一个名为language.JSON的单独JSON文件中),但没有任何效果 { "language": [ { "name": "English Languages", "values": ["English 1", "English 2", "English 3", "English 4"] }, { "name": "French Languages", "v
{
"language": [
{
"name": "English Languages",
"values": ["English 1", "English 2", "English 3", "English 4"]
},
{
"name": "French Languages",
"values": ["French 1", "French 2", "French 3", "French 4"]
},
{
"name": "Spanish Languages",
"values": ["Spanish 1", "Spanish 2", "Spanish 3", "Spanish 4"]
}
]}
jQuery
$.getJSON("script/countries.json", function (data) {
$.each(data.language, function (i, v) {
var category = data[i];
console.log(category.name)
$.each(category.values, function (i, v){
console.log(category.values[i])
});
});
有人能帮我吗。我想打印Lanugage名称,然后是值列表
输出:
English Language:
English1
English2..
French Language
French1
French2
等等
谢谢 这一行:
var category = data[i];
应该是
var category = data.language[i];
假设调用了
回调
,并且数据
具有所需的值
data[i]
将返回undefined,因为您正在迭代data.language
,因此需要使用var category=data.language[i]
或将当前值作为第二个参数传递给回调。所以你可以
//this will iterate through the data.language list and for each item in the array the callback method will be called.
//The callback method will receive the index of the current item and the item as its 2 parameters
$.each(data.language, function (i, category) {
//here category is the current item in the data.language array so it has the name and values properties
console.log(category.name)
//the same logic follows here, we are iterating through the values array and since it is an array of string calues the second param lang will be the language
$.each(category.values, function (i, lang) {
console.log(lang)
});
});
考虑以下代码:
$.getJSON("script/countries.json", function (data) {
$.each(data.language, function (i, v) {
var category = v;//updated
console.log(category.name)
$.each(category.values, function (i, name){
console.log(name);//updated
});
});
});//missing added
是否正在调用ajax回调。。
数据的记录值是多少请对您发布的内容进行解释,以帮助其他人快速获取。请详细解释您的代码。它可以工作,但我不能完全理解。@user1089173在您的代码中,您使用了var category=data[I]代码>,因此它将转到var category=data[0]
但是如果查看数据,数据
对象没有名为0
的键。实际上,您需要数据的索引0
处的值。语言
这就是代码失败的原因完全了解我的代码中的错误。我想逐行解释一下你的代码。此外,当json与代码位于同一个文件中时,它也可以正常工作。我将json放在一个单独的文件中并运行它,它会给我一个意外的令牌错误。为什么?fiddle:在内部声明json时工作正常。但是当在一个单独的文件中时,它会工作,但会出现意外的令牌错误。您可以检查浏览器的“网络”选项卡以查看返回的值吗?