[英]How can I convert JsValue to Array[Int] in Scala?
我正在使用 Play Json 庫來解析 scala 中的 json,我有一個看起來像這樣的值
scala> val extract = (payload \ "id")
extract: play.api.libs.json.JsValue = [8,18]
我想將 JsValue 轉換為 Array[Int]。
好吧,因為您正在解析 json - 這意味着您需要驗證它並正確處理錯誤,只是轉換它並不容易 - Play JSON 將迫使您處理錯誤。 因此,在那里回答您的問題,您可以嘗試如下所述的操作:
val jsonString = "{\"id\": [1, 2, 3] }"
val payload = Json.parse(jsonString)
// This will return `JsResult` - success or failure, which need to be properly handled
println((payload \ "id").validate[Array[Int]].map(_.toList))
// This is unsafe operation and might throw exception for un-expected JSON
println((payload \ "id").validate[Array[Int]].get.toList)
接下來為我打印出來:
JsSuccess(List(1, 2, 3),)
List(1, 2, 3)
我添加toList
只是為了輸出可讀性。 希望能幫到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.