你如何創建不同類型值的Json對象?如何用不同類型的值創建Json對象?
我使用噴霧JSON
下面是代碼
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)
))
它的工作原理,但看起來真的很重。有沒有辦法像這樣的代碼來定義json?
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
它不工作,說
Cannot find JsonWriter or JsonFormat type class for List[(String, Object)]
).toJson
^
這一點我得到的,每個字段的類型沒有在編譯時定義。但是,如果串行器無論如何都進行模式匹配,爲什麼它不工作?
謝謝!
圖書館可能會支持這一點。但是,如果沒有,有一個'隱式'函數需要'String'並將其轉換爲'JsString' – Jatin 2013-05-01 06:59:52