Verständnis JSON-Struktur - Attribute und Werte

Etwas stört mich. Ich habe JSON-in ein paar von meinen apps/websites, die wir alle lieben es! Aber etwas in meinen Kopf heute, das habe ich nie nachgedacht.. werfen Sie einen Blick auf das folgende Beispiel (aus http://json.org/example.html ):

{"widget": {
    "debug": "on",
    "window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
        "width": 500,
        "height": 500
    },
    "image": { 
        "src": "Images/Sun.png",
        "name": "sun1",
        "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
    },
    "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity /100) * 90;"
    }
}}  

nun, wenn dies war ausgedrückt in XML: hätten wir das folgende:

<widget>
    <debug>on</debug>
    <window title="Sample Konfabulator Widget">
        <name>main_window</name>
        <width>500</width>
        <height>500</height>
    </window>
    <image src="Images/Sun.png" name="sun1">
        <hOffset>250</hOffset>
        <vOffset>250</vOffset>
        <alignment>center</alignment>
    </image>
    <text data="Click Here" size="36" style="bold">
        <name>text1</name>
        <hOffset>250</hOffset>
        <vOffset>100</vOffset>
        <alignment>center</alignment>
        <onMouseUp>
            sun1.opacity = (sun1.opacity /100) * 90;
        </onMouseUp>
    </text>
</widget>

Beim Blick auf JSON zu XML-transformation Frage ich mich, ob es irgendeinen Weg gibt, dass Sie unterscheiden können, ob ein paar ("Schlüssel":"Wert") sind ein Attribut eines Tags. Zum Beispiel im JSON-oben

"window": {
            "title": "Sample Konfabulator Widget",
            "name": "main_window",

Titel wird dargestellt als ein Attribut des Fensters tag während der name ist ein tag, in einem eigenen Recht, jedoch ist dies nicht ausgedrückt, überall (dass ich sehen kann).

<window title="Sample Konfabulator Widget">
    <name>main_window</name>

Warum das nicht angezeigt als:

<window>
    <title>Sample Konfabulator Widget</title>
    <name>main_window</name>

Ist Ihr eine Möglichkeit, ich kann angeben, ob ein paar sind ein Attribut der parent-tag oder ein untergeordnetes tag in Ihrem eigenen Recht? Sorry, wenn meine Formulierung ist schlecht oder wenn ich mir das nicht erklären, mich gut.

  • Haben Sie ein XML-schema oder so etwas? Weder XML-noch JSON-weisen eine semantische Bedeutung, um Ihre Daten.
  • Die häufigste convention sah ich in viele xml-to-json-Transformatoren ist, um die Attribute beginnend mit einem @ im json-Format. eg: {"window": {"@title":...
  • Das ist ein schöner Weg, es zu tun. Ich habe noch nie gesehen, aber dein einer Satz-Erklärung macht es klar, wie es funktionieren würde.
  • Beachten Sie, dass in anderen Arten von XML hat mehr Einschränkungen als JSON, z.B. ein XML-tag-Namen können keine Leerzeichen (oder anderen Zeichen), sondern eine JSON-Schlüssel-name kann eine beliebige Unicode-Zeichen (mit nur ein paar vorbehaltlich der Flucht). So ignorieren das Attribut versus Kind-tag Thema, es gibt andere Dinge, die Sie finden können in JSON, die man nicht direkt darstellen im XML-Format.
  • Ich fand das eher eyeopening webreflection.blogspot.com/2011/12/on-json-comments.html
InformationsquelleAutor Mike Sav | 2011-12-05
Schreibe einen Kommentar