我有这样的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
答案 0 :(得分:4)
是的,有一个原因,而这个原因是间接来自XPath(在编程方式导航XML文档时的标准)。属性通常被称为@attribute
以区别于内容或子标签,以便能够进行双向操作(如果您没有它们,则从JSON返回到XML将不可能由于模糊)。
在编程术语中,首选calendar.month["@year"]
而不是calendar.month.@year
。它还具有使优化器理解名称是文字的间接好处。