簡體   English   中英

如何在 Scala 中將 JsValue 轉換為 Array[Int]?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM