簡體   English   中英

Play Framework 2 JSON讀取,對一個變量進行反序列化

[英]Play Framework 2 JSON Reads, deserialization of one variable

我正在使用Play Framework 2.4,並且正在嘗試使用讀取進行基本的JSON反序列化,但出現錯誤。 這是代碼:

case class Config(action: String)

在某個地方

implicit val configReads: Reads[Config] = (
  (__ \ "action").read[String]
  )(Config.apply _)

我認為configReads的格式正確,但是在“ read”方法調用(未定義符號)上出現IDE錯誤,在編譯代碼時出現以下錯誤:

Error:(30, 27) overloaded method value read with alternatives:
  (t: String)play.api.libs.json.Reads[String] <and>
  (implicit r: play.api.libs.json.Reads[String])play.api.libs.json.Reads[String]
 cannot be applied to (String => wings.common.json.Config)
      (__ \ "action").read[String]
                          ^

但是,如果不是嘗試反序列化一個參數,而是在構造函數中聲明一個帶有兩個參數的類,然后編寫代碼對其反序列化,則它可以工作。

有人知道如何解決這個問題嗎?

編輯:

深入研究Google時,我發現適用於Play 2.1.x,但是我將Json庫用於Play 2.4.1,因此應該不會發生此問題。

您可以這樣:

implicit val configReads: Reads[Config] = (
  (__ \ "action").read[String]
  ) map Config.apply

暫無
暫無

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

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