2016-09-12 2 views
2

Я пытаюсь преобразовать классы шкафов в json с помощью spray.io json. Код ниже:Как использовать вложенные классы классов и спрей json implicits

case class Value(amt: Int) 
case class Item(name: String, count: Value) 
object MyJsonProtocol extends DefaultJsonProtocol { 
    implicit val itemFormat = jsonFormat2(Item) 
} 
import MyJsonProtocol._ 
import spray.json._ 
val json = Item("mary", Value(2)).toJson 
println(json) 

дает:

could not find implicit value for evidence parameter of type onextent.bluecase.examples.ex1.ExampleJson2.MyJsonProtocol.JF[Value] 

Я попытался определить JsonProtocol для Стоимости, но получить то же самое. Поиск stackoverflow. Я вижу только эту ошибку, связанную с generics, которой это не так.

Что мне не хватает? (перечитывание о implicits сейчас ...)

ответ

3

Для вашего класса Value вам нужен формат json, поскольку он является частью вашего класса Item. Таким образом, ваш объект должен выглядеть следующим образом:

object MyJsonProtocol extends DefaultJsonProtocol { 
implicit val valueFormat = jsonFormat1(Value) 
implicit val itemFormat = jsonFormat2(Item) 
}