- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Map.toJSON sortiert Ausgabe nach Map-Keys?
Hallo,
ist die folgende Beobachtung korrekt? Und wenn ja, gibt es eine Mรถglichkeit, den Effekt zu unterbinden?
Code in der Seitenvorlage:
$CMS_SET(theMap, {:})$
$CMS_SET(void, theMap.put("id", "17"))$
$CMS_SET(void, theMap.put("words", "9"))$
$CMS_SET(void, theMap.put("content", "The quick brown fox jumps over the lazy dog."))$
$CMS_VALUE(theMap.toJSON)$
Ergebnis:
{
"content": "The quick brown fox jumps over the lazy dog.",
"id": "17",
"words": "9"
}
Offenbar wird beim Aufruf von toJSON die Map nach deren Keys sortiert, was in meinem Fall unerwรผnscht ist. Gibt es eine Mรถglichkeit, diese Sortierung zu unterbinden? Die JSON-Ausgabe, die wir benรถtigen, muss einer vorgegebenen Reihenfolge der Eintrรคge genรผgen. Insbesondere muss der id-Knoten der erste in der JSON-Ausgabe sein.
Viele Grรผรe,
Udo Woitek.
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Udo,
aus dem {:} wirst Du nicht einfach einen anderen Typ machen kรถnnen. Du kannst Dir allerdings selber eine LinkedHashMap bauen:
$CMS_SET(theMap, class("java.util.LinkedHashMap").new)$
$CMS_SET(void, theMap.put("id", "17"))$
$CMS_SET(void, theMap.put("words", "9"))$
$CMS_SET(void, theMap.put("content", "The quick brown fox jumps over the lazy dog."))$
$CMS_VALUE(theMap.toJSON())$
Zum Erzeugen neuer Objekte siehe auch hier (Tipp: trotzdem mรถglichst sparsam verwenden).
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Im Thread Eine mit $CMS_SET()$ erzeugte Map sortiert die Eintrรคge habe ich die Aussage gefunden, eine Map wรผrde die Reihenfolge der Eintrรคge nicht beibehalten. Nun mag das bei einer HashMap der Fall sein, eine LinkedHashMap bewahrt aber auch in Java 8 die Reihenfolge der Eintrรคge. Die Frage ist nun eher, wie man FirstSpirit davon รผberzeugen kann, aus {:} eine LinkedHashMap zu machen...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Udo,
aus dem {:} wirst Du nicht einfach einen anderen Typ machen kรถnnen. Du kannst Dir allerdings selber eine LinkedHashMap bauen:
$CMS_SET(theMap, class("java.util.LinkedHashMap").new)$
$CMS_SET(void, theMap.put("id", "17"))$
$CMS_SET(void, theMap.put("words", "9"))$
$CMS_SET(void, theMap.put("content", "The quick brown fox jumps over the lazy dog."))$
$CMS_VALUE(theMap.toJSON())$
Zum Erzeugen neuer Objekte siehe auch hier (Tipp: trotzdem mรถglichst sparsam verwenden).
Viele Grรผรe
Michael

