Wie erstellen Sie Json-Objekt mit Werten verschiedener Typen?Wie erstellen Sie Json-Objekt mit Werten verschiedener Typen?
Ich bin mit Spray-json
Hier ist der Code
val images : List[JsObject] = fetchImageUrls(url).map((url: String) => {
JsObject(List(
"link_path" -> JsString(url),
"display_name" -> JsString("image"),
"size" -> JsString(""),
"modified" -> JsString(""),
"thumbnail" -> JsString(url),
"filename" -> JsString("image"),
"is_dir" -> JsBoolean(x = false),
"thumb_exists" -> JsBoolean(x = true)))
})
val jsonAst: JsObject = JsObject(List(
"client" -> JsString("urlimages"),
"view" -> JsString("thumbnails"),
"contents" -> JsArray(images)
))
Es funktioniert, aber sieht wirklich schwer. Gibt es eine Möglichkeit, Json mit Code wie diesem zu definieren?
val images : List[List[(String, Any)]] = fetchImageUrls(url).map((url: String) => {
List(
"link_path" -> url,
"display_name" -> "image",
"size" -> "",
"modified" -> "",
"thumbnail" -> url,
"filename" -> "image",
"is_dir" -> false,
"thumb_exists" -> true)
})
val jsonAst = List(
"client" -> "urlimages",
"view" -> "thumbnails",
"contents" -> images
).toJson
Es funktioniert nicht sagen, dass
Cannot find JsonWriter or JsonFormat type class for List[(String, Object)]
).toJson
^
Was ich bekommen, geben Sie jedes Feld nicht bei der Kompilierung definiert ist. Aber warum würde es nicht funktionieren, wenn der Serializer die Mustererkennung trotzdem durchführt?
Danke!
Die Bibliothek könnte dies unterstützen. Wenn nicht, habe eine "implizite" Funktion, die eine "Zeichenfolge" akzeptiert und sie in "JsString" umwandelt – Jatin