Jquery 遍历值的基本JSON数组时出现问题
我很不好意思问,但我真的很难从一些JSON中获取值。我似乎无法正确访问值数组 我可以从这个Json(fiddle:)获取值,它使用以下格式的Json响应:Jquery 遍历值的基本JSON数组时出现问题,jquery,json,Jquery,Json,我很不好意思问,但我真的很难从一些JSON中获取值。我似乎无法正确访问值数组 我可以从这个Json(fiddle:)获取值,它使用以下格式的Json响应: { "items": [ { "tags": [ "jqgrid" ], "owner": { "reputation": 21, "user_id":
{
"items": [
{
"tags": [
"jqgrid"
],
"owner": {
"reputation": 21,
"user_id": 3038042,
"user_type": "registered",
"accept_rate": 70,
"profile_image": "https://www.gravatar.com/avatar/819ef95bfca002204f5bd00654fb9957?s=128&d=identicon&r=PG&f=1",
"display_name": "Amete",
"link": "http://stackoverflow.com/users/3038042/amete"
},
"is_answered": false,
"view_count": 5,
"answer_count": 1,
"score": 1,
"last_activity_date": 1423648956,
"creation_date": 1423605704,
"last_edit_date": 1423648956,
"question_id": 28442722,
"link": "http://stackoverflow.com/questions/28442722/jqgrid-set-focus-on-selectrow-not-working",
"title": "JqGrid Set Focus on SelectRow not working"
}
]
}
但是我不能对下面的Json做同样的事情()
我知道我没有正确访问阵列,但我尝试的一切都失败了
此外,使用JQuery$.getJSON方法看起来更简单,但我也无法做到这一点
任何建议都将不胜感激。您的第二组数据是一个纯数组,顶层没有名为
项的命名元素
使用
不是
var item = result.item[i];
JSFiddle:
我将Ajax回调转换为IIFE来测试数据。在第二个json中没有项
您需要使用var item=result[i]代码>失败的小提琴没有获得任何数据,它当然被同一来源停止。。。我真傻。。。实际上,我实际上使用的是一个web服务——为了简单起见,我只使用了示例JSON。我认为web服务绕过了整个“同源策略”,但是,采用下面@TrueBlueAusie的方法,我发现从我的服务中复制数据并将其声明为变量是可行的。这是我无法得到任何回应的主要原因。你能解释一下为什么stackoverflow API不受同源策略的影响,而我的API受同源策略的影响吗?好啊因此,最终我一直受到同一原产地政策的影响。这使得测试我的API并在本地(开发中)使用它们变得不可能。最终,我在服务器上启用了CORS,解决了下面的问题,并使用真正的API工作启用了我的测试。我使用的是.NET和WebAPI,因此下面的文章为我解决了这个问题:在发布之前始终检查准确的重复答案:)我是按照您发布的内容编写的,因此不显示答案,只显示通知谢谢二者都我感谢所有的帮助。这是一种友好的姿态。谢谢@TrueBlueAussie!这很有效,但我用我的真实web服务(而不是示例)尝试了您的方法,但仍然没有得到任何数据。我想这是由于同源策略的限制,但我认为web服务API绕过了这一限制?缺乏数据是我之前多次尝试获得结果失败的原因。根据您的方法,这里有一个可用的fiddle:Failed fiddle使用web服务:此处:。很明显,我必须在这里认真提高技能。这两个jsfiddle在我看来都是一样的。第二个应该使用Web服务吗?是的,谢谢@TrueBlueAussie,应该是的。古怪的我有两扇开着的窗户。。。两者都是相同的URL。它没有更新道歉。下面是一个正确的版本,即在success:
函数中缺少}
。好的缩进是你的朋友:)是的,谢谢。我确实认为我最好还是用JSHint检查一下,但你太快了,以至于比我快了。:)仍然没有响应输出吗?虽然JSON被声明为变量时会出现错误。。。
var item = result[i];
var item = result.item[i];