XQuery: Array von Karten erstellen


Vollblut

Ich verstehe nicht, wie man in Xquery ein Array von Karten dynamisch erstellt, das am Ende als JSON serialisiert werden soll:

Ich kann so ein einfaches/statisches Array von Karten erstellen

let $array := [map{"id": "4711"}, map{"id": "4712"}]

Ich kann eine weitere Karte wie diese hinzufügen:

let $array := array:append($array, map {"id": "4713"})

mit folgendem

return 
 serialize($array, 
        <output:serialization-parameters>
            <output:method>json</output:method>
        </output:serialization-parameters>)

Ergebnisse, [{"id":"4711"},{"id":"4712"},{"id":"4713"}]die für mich perfektes JSON ist.

Aber ich habe eine beliebige Anzahl von Karten, die ich diesem Array basierend auf einer Sequenz hinzufügen kann, wie folgt:

let $mylist := ("4714", "4715")

Als Ergebnis hätte ich gerne folgendes:

[{"id":"4711"},{"id":"4712"},{"id":"4713"},{"id":"4714"},{"id":"475"}]

Dies versuche ich zu erreichen durch:

let $array := array:append($array, 
    for $n in $mylist
    return map {"id": $n}
)  

Aber das gibt als Ergebnis zurück:

[{"id":"4711"},{"id":"4712"},{"id":"4713"},[{"id":"4714"},{"id":"4715"}]]

Die for-Schleife erstellt also offensichtlich ein weiteres Array und hängt dieses an das vorhandene an. Wie vermeide ich das?

Michael Kay

Ich denke, folgendes sollte es tun:

let $mylist := ("4714", "4715")
return array{ $mylist ! map{'id': .} }

Es ist meiner Meinung nach ein bisschen bedauerlich, dass array{}es sich um eine spezielle Syntax handelt und nicht nur um eine Funktion.

Du kannst es auch mit

array:join( $mylist ! [map{'id': .}] )

Verwandte Artikel


Los: Karte mit Array von Karten erstellen

user3918985: Ich versuche, eine Karte mit einem Array zu erstellen, das Karten enthält. Mein Code: Gehen: func main() { m := map[string][]map[string]string{ "photos": [{"a":"1"}, {"b": "2"}], "pictures": [{"a":"1"}, {"b": "2"}] }

Clojure Array von Karten

Chris Edwards Ich versuche, diese Art von Daten in zu modellieren Clojure name: foo data: bar name: stack data: overflow name: tess data: ting Ich habe überlegt, eine Karte zu verwenden, aber Sie können dort keine doppelten Schlüssel haben, damit das ni

Erstellen von Themen mit SASS (Karten)

Julio Ich bin neu bei SASS und versuche, Benutzern die Möglichkeit zu geben, verschiedene Themen für eine Website auszuwählen. Ich habe eine Karte erstellt, die so aussieht: $theme-map: ( main-theme: ( primary: #007991, secondary: #55D3AE,

Clojure: Vektor von Karten aus Liste erstellen

Bill O'Brien Ich möchte einen Vektor von Karten wie folgt erstellen: [{:patid 0} {:patid 1} {:patid 2}] => [{:patid 0} {:patid 1} {:patid 2}] Wie würde ich einen Vektor von n Karten erstellen? Das nächste, was ich erreicht habe, ist dies: (defn patientid [n]

BaseX XQuery-Problem beim Zusammenführen von Karten?

Benutzer5924595 Ich möchte CSV in XML mit XQuery auf BaseX konvertieren (derzeit mit BaseX v9.4.1). Mit Spalten-Tabs getrennt sieht die CSV-Datei Configuration.tsv( Eingabe ) wie folgt aus: Datasets Autosar Fibex TSS0001 TSS0002 TSS0

Erstellen dynamischer Karten aus einem Array

rstowe1 Ich versuche, 3 mit derselben Komponente mit den Titeln "Monat 1", "Monat 2" und "Monat 3" zu erstellen. Die Karten enthalten eine Tabelle und ich muss jeder Karte aus einem Array einen Header hinzufügen. Ich habe versucht, Eigenschaften zu verwenden,