0

次のような XML があります。

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

MDNs JXON Snippet 3. https://developer.mozilla.org/en-US/docs/JXON#Algorithm_.233.3A_a_synthetic_technique経由で JSON に変換します

結果は次のとおりです。

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

これは、JXON スニペット 3 がこれを行うために発生します。

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

ここで「@」を使用する理由はありますか? 私にはできないので意味がありません

calendar.month.@year
4

1 に答える 1

4

はい、理由があります。その理由は間接的に XPath (XML ドキュメントをプログラムでナビゲートする場合の標準) からのものです。属性は一般に@attribute、コンテンツや子タグと区別して双方向の操作を可能にするために参照されます (属性がなければ、あいまいさのために JSON から XML に戻ることは不可能です)。

プログラミング用語では、calendar.month["@year"]over を行うことを好みcalendar.month.@yearます。また、名前がリテラルであることをオプティマイザーに理解させるという間接的な利点もあります。

于 2013-05-25T12:41:50.747 に答える