2015-05-04 175 views
3

我想JSON隐含读取使用硬编码值,是这样的:JSON在播放框架(斯卡拉)硬编码值读取

implicit val locationReads: Reads[Location] = (
    "I am a hardcoded value" and // something like that 
    (JsPath \ "lat").read[Double] and 
    (JsPath \ "long").read[Double] 
)(Location.apply _) 

有谁知道如何做到这一点?

回答

4

使用Reads.pure产生Reads能产生一个恒定值。

implicit val locationReads: Reads[Location] = (
    Reads.pure("I am a hardcoded value") and 
    (JsPath \ "lat").read[Double] and 
    (JsPath \ "long").read[Double] 
)(Location.apply _) 
+0

哇,我不知道,太棒了! – kosii

2

你可以做到这一点通过使用Location.apply自定义函数istead:

case class Location(s: String, lat: Double, lon: Double) 
object Location { 
    implicit val locationReads: Reads[Location] = (
     (JsPath \ "lat").read[Double] and 
     (JsPath \ "long").read[Double] 
    )((lat, lon) => Location("I am a hardcoded value", lat, lon)) 
} 
+0

谢谢@kosii您的好回答。 :) – bjfletcher