2016-04-12 14 views
0

Stellen Sie sich eine Karte haben [String, List [String]], die wie folgt aussieht:Scala + Play: serialisiert Karte zu Json Array

val myMap = Map(
    "ab" -> List("yo", "yo2", "yo3"), 
    "cd" -> List("hi", "hi1", "hi2") 
) 

wenn wir das tun Json.toJson (myMap), der resultierende JSON ist

{ 
    "ab" : ["yo", "yo2", "yo3"], 
    "cd" : ["hi", "hi1", "hi2"] 
} 

Gibt es eine Möglichkeit, den äußeren Container zu einem Array anstelle eines Objekts zu bekommen? Wie

[ 
    "ab" : ["yo", "yo2", "yo3"], 
    "cd" : ["hi", "hi1", "hi2"] 
] 

Ich bin mir nicht sicher, dass dies gültig Json wäre. Vielen Dank.

+1

Nein, das ist kein gültiger Json. Sie können ein Array von Objekten erhalten: [{"ab": []}, {"cd": []}]. Ist es das, was du brauchst? – Tyth

+0

@Tyth wahrscheinlich ja! – ticofab

Antwort

1

Der letzte ist kein gültiger JSON. Sie könnten Json.toJson(myMap.toList) verwenden, um das Ergebnis zu erhalten, da @Tyth beantwortet hat. Eigentlich Map ist ähnlich wie Object des JSON-Format, weil es die Extraktion von Werten per Schlüssel bietet. Im Fall mit Array ist es über Iterate über jedes Element erreicht.