2015-11-02 4 views
1

Я следующая модель:PLAY2 Scala Json заказ Формат Combinator

case class Person(name: String, age: Int, job: Option[String]) 

object PersonJsonFormats { 
    implicit val personFormat = Json.format[Person] 
} 

Конвертирование Person объекта в Json (например, с Json.toJson(person)) производит следующий объект JSON.

{ 
    "name": "John", 
    "age": 10, 
    "job": "gardener" 
} 

Что я должен изменить, чтобы вместо этого создать такой объект, как следующее?

[ 
    { 
     "name": "name", 
     "value" : "John" 
    }, 
    { 
     "name": "age", 
     "value": 10 
    }, 
    { 
     "name": "job", 
     "value": "gardener" 
    } 
] 

Я знаю, что я мог бы написать на заказе Reads и Writes, но я хочу, чтобы написать что-то я могу обратиться к каждому case class

ответ

2

Если вы не хотите писать пользовательское чтение и запись и хочу что-то, что вы можете применимо к каждому case class, вы, вероятно, должны использовать для этого макросы.

Так построены автоматические неявные преобразователи original.

мест посмотреть:

+0

Я был беглый взгляд на эти документы. Я думаю, что это немного выше моего знания Scala :) – tano

Смежные вопросы