簡體   English   中英

如何在scala play上使用給定的結構讀取json?

[英]How to read json with the given structure on scala play?

我有一個像這樣的json列表結構,我們如何才能讀取此結構並在scala中轉換為列表,播放框架。

{
"0":{
    "name":"Foo",
    "age":10
  },
"12":{
    "name":"Bar",
     "age":10
  }
  .
  .
  .
}

如果有如下所示的json結構,我可以輕松完成,但是由於我並不精於解析Json,而且實際上也不是scala的新手,所以我不明白如何使用鍵為“ 0”的Json結構如第一個示例中的“,” 12“。 我一直在為傑克遜使用Jerkson包裝器來生成/解析json / case-class。

{
{"name":"Foo","age":10},
{"name":"Bar",age:11}
}

更新:

實際上,我成功地解析了json結構,除了Ryans的答案,

import play.api.libs.json._

case class Doodad(name: String, age: Int)

object Doodad {
  implicit val fmt = Json.format[Doodad]

def parserFuntion = {
var myJsValue: JsValue = Json.parse(jsonString)// added line in the ans
    var requiredMap = myJsValue.validate[Map[String, Doodad]]
}
    }

但是現在我有一個新問題,例如,我使用的json結構似乎有點不規則:

{
"0":{
    "name":"Foo",
    "age":10
  },
"12":{
    "name":"Bar",
    "age":10
  },
"13":{
    "name":"Foobar"
    "age":20,
    "meta":{
             "desc":"Irregular Json",
             "img":"Some Link"
           }
  },
      .
      .
      .
    }

某些json列表元素可能具有額外的“元”鍵->值對,而某些可能沒有。 因此,我們如何應對這種情況。 有任何想法嗎??

case class Doodad(name: String, age: Int)

object Doodad {
  implicit val fmt = Json.format[Doodad]
}

myJsValue.validate[Map[String, Doodad]] // JsResult[Map[String, Doodad]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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