我正在嘗試使用play-reactivemongo和reactivemongo-extensions將一個Rails/Mongodb應用程序遷移到Play 2.3。在建模數據時,我正在運行一個序列化和反序列化Map [Int,Boolean]的問題。播放JSON格式的地圖[詮釋,_]
當我嘗試通過宏來定義我的格式,像這樣
implicit val myCaseClass = Json.format[MyCaseClass]
其中MyCaseClass有幾個字符串字段,一個BSONObjectID字段和地圖[詮釋,布爾]字段中的編譯器抱怨:
No Json serializer found for type Map[Int,Boolean]. Try to implement an implicit Writes or Format for this type.
No Json deserializer found for type Map[Int,Boolean]. Try to implement an implicit Reads or Format for this type.
查看Reads.scala中Play的源代碼,我看到爲Map [String,_]定義的Reads,但Map [Int,_]沒有定義。
Play有默認的讀/寫字符串映射但沒有其他簡單類型的原因嗎?
我不完全理解由play對象定義的Map [String,_],因爲我對scala相當陌生。我將如何將其轉換爲Map [Int,_]?如果由於某些技術原因,這是不可能的,我將如何定義一個Reads/Writes for Map [Int,Boolean]?
如果我停下來思考片刻,我會意識到我已經知道那個哈哈。就在我變得密集的時候,對不起。無論如何,是否可以定義Reads/Writes,使scala對象具有Map [Int,Boolean],但用字符串鍵寫入JSON對象?基本上解析來自所有JSON鍵的整數來創建一個Map [Int,_]? – imagio 2014-12-04 04:15:34
我建議你回去改進你的問題。然後希望其他人(誰更瞭解比賽)會回答。 – 2014-12-04 04:35:55