Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jQuery访问这些奇怪的JSON项?_Jquery_Json_Pipe_Yahoo - Fatal编程技术网

如何使用jQuery访问这些奇怪的JSON项?

如何使用jQuery访问这些奇怪的JSON项?,jquery,json,pipe,yahoo,Jquery,Json,Pipe,Yahoo,可能重复: 如果这是一个重复的问题,我道歉。我找了,我真的找了 我试图实现的是将一个简单的日期重新格式化成更好的格式,比如2012年3月9日星期五。我想使用众多方便的jQuery插件之一,将随时可用的pubDate值解析为更有用的内容。不幸的是,有一些力量阻止我导入任何其他脚本,包括jqueryui。我的上级授权的页面模板导入jQuery,就这样 My JSON数据包含以下代码段: "items": [ { "title": "blah

可能重复:

如果这是一个重复的问题,我道歉。我找了,我真的找了

我试图实现的是将一个简单的日期重新格式化成更好的格式,比如2012年3月9日星期五。我想使用众多方便的jQuery插件之一,将随时可用的pubDate值解析为更有用的内容。不幸的是,有一些力量阻止我导入任何其他脚本,包括jqueryui。我的上级授权的页面模板导入jQuery,就这样

My JSON数据包含以下代码段:

"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是第一个,但是你下面的答案是最全面的,因此我认为它是可以接受的。