如何使用jQuery访问这些奇怪的JSON项?
可能重复: 如果这是一个重复的问题,我道歉。我找了,我真的找了 我试图实现的是将一个简单的日期重新格式化成更好的格式,比如2012年3月9日星期五。我想使用众多方便的jQuery插件之一,将随时可用的pubDate值解析为更有用的内容。不幸的是,有一些力量阻止我导入任何其他脚本,包括jqueryui。我的上级授权的页面模板导入jQuery,就这样 My JSON数据包含以下代码段:如何使用jQuery访问这些奇怪的JSON项?,jquery,json,pipe,yahoo,Jquery,Json,Pipe,Yahoo,可能重复: 如果这是一个重复的问题,我道歉。我找了,我真的找了 我试图实现的是将一个简单的日期重新格式化成更好的格式,比如2012年3月9日星期五。我想使用众多方便的jQuery插件之一,将随时可用的pubDate值解析为更有用的内容。不幸的是,有一些力量阻止我导入任何其他脚本,包括jqueryui。我的上级授权的页面模板导入jQuery,就这样 My JSON数据包含以下代码段: "items": [ { "title": "blah
"items": [
{
"title": "blah blah",
"link": "http://url.blah.com",
"category": "category blah",
"pubDate": "Fri, 09 Mar 2012 16:16:05 -0500",
"y:published": {
"hour": "21",
"timezone": "UTC",
"second": "5",
"month": "3",
"month_name": "March",
"minute": "16",
"utime": "1331327765",
"day": "9",
"day_ordinal_suffix": "th",
"day_of_week": "5",
"day_name": "Friday",
"year": "2012"
},
"y:id": {
"permalink": "true",
"value": null
},
"y:title": "blah blah",
"description": "more blah blah"
}
如果我使用$.each循环项目,如何检索y:published中的内容值
显然有点像
items.y:published.day_name
因为冒号,所以不起作用。唉,我不是这个内容的创建者,实际上是来自雅虎管道的JSON提要,这可能解释了y:;我的任务就是操纵它。从我所读到的内容来看,y:blahblah条目是非标准JSON,可能没有通过.getJSON解析,在这种情况下,我就完蛋了。子问题:此评估正确吗
我在这里介绍了我的所有基础:将Yahoo管道输出从JSON更改为RSS/XML完全消除了y:published节点,因此这不是一个选项
提前谢谢。我没有骄傲;即使是最简单的解决方案,只要可以使用straight js或jQuery,我也会非常感激
更新:以创纪录的时间回答!感谢所有做出贡献的人
解决方案:
var niceDate =
singleItem['y:published'].day_name + ', ' +
singleItem['y:published'].month_name + ' ' +
singleItem['y:published'].day + ', ' +
singleItem['y:published'].year;
object[prop]等同于object.prop,只是前者不限于有效的JavaScript标识符。JavaScript中的所有属性名称实际上都是内部字符串。后一种形式是为了方便,但正如所指出的,并不总是有效的
快乐编码。项目是一个数组,因此要获取第一个项目,请使用项目[0]
然后,要访问该项上具有无效标识符名称的属性,可以使用括号表示法,因此:
console.log(items[0]["y:published"].hour); // 21
在JavaScript中,您可以通过两种方式访问对象属性:使用点符号和文字(例如foo.bar),或者使用括号符号和字符串foo[bar]。两者完全可以互换,但使用字符串形式时,属性名不必符合JavaScript标识符文本的规则。您看到了吗?软糖没有,我没有看到。非常感谢你。最近拍了拍我的前额双重感谢。实际上,我以前在DOM操作中使用过这种符号。我想我已经说服自己JSON遍历有一套本质上不同的规则。或者别的什么。我不知道为什么。很晚了…@PaulD:一旦你反序列化了它,你就不再处理JSON了。您正在处理JavaScript对象。谢谢TJ。我希望我当初能有清醒的头脑来认识到这一点。正如我所说的,我熟悉括号表示法,并且以前在普通DOM中使用过它。我只是觉得JSON遍历有点不同。但你当然是对的;从DOM节点到XML,再到JSON,任何东西在解析后都会以相同的方式进行操作@achusonline是第一个,但是你下面的答案是最全面的,因此我认为它是可以接受的。