JavaScript:JXON转换,是否有“@”的原因?

时间:2013-05-25 12:38:43

标签: javascript json

我有这样的XML:

<calendar>
    <month year="2013" num="5">
        <day num="1">
    </month>
</calendar>

我通过MDNs JXON Snippet 3转换为JSON。https://developer.mozilla.org/en-US/docs/JXON#Algorithm_.233.3A_a_synthetic_technique

结果是:

{"calendar":{
    "month":[{
        "@year":2013,"@num":5,"day":{
            "@num":1
            }
        }
    }]
}

这是因为JXON Snippet 3执行此操作:

vResult["@" + oAttrib.name.toLowerCase()] = parseText(oAttrib.value.trim());

有什么理由在这里使用“@”吗?对我来说,因为我无法做到这一点没有意义

calendar.month.@year

1 个答案:

答案 0 :(得分:4)

是的,有一个原因,而这个原因是间接来自XPath(在编程方式导航XML文档时的标准)。属性通常被称为@attribute以区别于内容或子标签,以便能够进行双向操作(如果您没有它们,则从JSON返回到XML将不可能由于模糊)。

在编程术语中,首选calendar.month["@year"]而不是calendar.month.@year。它还具有使优化器理解名称是文字的间接好处。