JSON语法,这是什么?

JSON语法,这是什么?,json,Json,我理解JSON的概念,但在开始使用易趣的api之后,我遇到了一个我以前从未见过的符号,我想知道是否有人能解释一下它到底是怎么回事 { "findItemsByKeywordsResponse": [ { "ack": [ "Success" ], "version": [ "1.5.0" ], "timestamp": [ "2010

我理解JSON的概念,但在开始使用易趣的api之后,我遇到了一个我以前从未见过的符号,我想知道是否有人能解释一下它到底是怎么回事

{
"findItemsByKeywordsResponse": [
    {
        "ack": [
            "Success" 
        ],
        "version": [
            "1.5.0" 
        ],
        "timestamp": [
            "2010-06-16T08:42:21.468Z" 
        ],
        "searchResult": [
            {
                "@count": "0" 
            } 
        ],
        "paginationOutput": [
            {
                "pageNumber": [
                    "0" 
                ],
                "entriesPerPage": [
                    "10" 
                ],
                "totalPages": [
                    "0" 
                ],
                "totalEntries": [
                    "0" 
                ] 
            } 
        ] 
    } 
]
}

“计数”是什么?我注意到当我在chrome中引用它时,它抛出了一个错误:


但在Firefox中并非如此。JSON Lint报告它是有效的,正如我所期望的…;)

它是以
@
字符开头的属性名称。仅此而已

用于访问包含不能在点表示法中使用的字符的属性

i、 e

尝试:


没有要求Javascript数组键必须是有效的Javascript标识符。

除了这里的答案,当从XML创建JSON时,
@
通常出现在JSON属性名称中。
@
表示一个XML属性,因此可以以新的JSON形式将其与XML节点的子元素区分开来。例如,XML中的特定项可能如下所示:

    <searchResult count="0">
    </searchResult>


如前所述,可以使用方括号表示法访问属性。

在PHP中,如果要访问名称以无效字符开头的属性,必须使用
{'property\u name'}
。因此,如果您想从特定的JSON示例访问
@count
,您应该尝试以下方法:

$json_decoded = json_decode($json_var);
$count = $json_decoded->findItemsByKeywordsResponse[0]->searchResult[0]->{'@count'};

json\u decode()
函数用于将json转换为PHP对象。

谢谢,这非常有效。那么这个“@”符号就没有什么特别的了?没有什么特别的了,至少在JSON方面没有。谢谢,也很有效,但会接受上面的有用链接。这个JSON是从XML创建的吗?因为E4X使用
@attribute\u name
语法表示属性。
    <searchResult count="0">
    </searchResult>
$json_decoded = json_decode($json_var);
$count = $json_decoded->findItemsByKeywordsResponse[0]->searchResult[0]->{'@count'};