首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JSON没有被Play Framework正确地解析

JSON没有被Play Framework正确地解析
EN

Stack Overflow用户
提问于 2016-02-26 15:27:33
回答 2查看 196关注 0票数 1

下面的代码用于尝试将一些JSON解析为Scala案例类:

代码语言:javascript
运行
复制
 val json =
    """{"hits": [
        {"created_at":"2016-02-01T15:01:03.000Z","title":"title","num_comments":778,"parent_id":null,"_tags":["story","author","story_11012044"],"objectID":"11012044","_highlightResult":{"title":{"value":"title","matchLevel":"full","matchedWords":["title"]},"author":{"value":"author","matchLevel":"none","matchedWords":[]},"story_text":{"value":"Please lead","matchLevel":"none","matchedWords":[]}}}
    ]}""".stripMargin

  val jsobj = Json.parse(json)
  val r = (JsPath \ "hits").read[Seq[HiringPost]](Reads.seq[HiringPost])
  val res: JsResult[Seq[HiringPost]] = r.reads(jsobj)
  println("result is: " + res)

一些人请求在这里进行转换:

代码语言:javascript
运行
复制
case class HiringPost(date: String, count: Int, id: String )
object HiringPost {

  implicit val hiringPostFormat = Json.format[HiringPost]

  implicit val hiringWrites: Writes[HiringPost] = (
    (JsPath \ "date").write[String] and
    (JsPath \ "count").write[Int] and
    (JsPath \ "id").write[String]
  )(unlift(HiringPost.unapply))

  implicit val hiringReads: Reads[HiringPost] = (
    (JsPath \  "created_at").read[String] and
    (JsPath \  "num_comments").read[Int] and
    (JsPath \  "objectID").read[String]
  )(HiringPost.apply _)
}

但是,当我试图解析JSON时得到的响应是:

代码语言:javascript
运行
复制
result is: JsError(List((/hits(0)/date,List(ValidationError(List(error.path.missing),WrappedArray()))), (/hits(0)/count,List(ValidationError(List(error.path.missing),WrappedArray()))), (/hits(0)/id,List(ValidationError(List(error.path.missing),WrappedArray())))))

我写解析或引申的方式有什么问题?

EN

Stack Overflow用户

发布于 2016-02-26 15:52:16

如果有读和写,就不应该定义Format[HiringPost]。我很惊讶这不是一个隐含的分辨率错误。去掉这一行:

代码语言:javascript
运行
复制
implicit val hiringPostFormat = Json.format[HiringPost]

您还可以用宏Json.writes[HiringPost]替换普通的写入隐含。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35655592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档