Я ищу хорошую абстракцию для извлечения формы данных JSON (сейчас я использую json4s
).Абстракция для извлечения данных из JSON в Scala
Предположим, у меня есть класс case A
и данные в формате JSON.
case class A(a1: String, a2: String, a3: String)
{"a1":"xxx", "a2": "yyy", "a3": "zzz"}
Мне нужна функция для извлечения данных в формате JSON и возвращать A
эти данные следующим образом:
val a: JValue => A = ...
Я не хочу, чтобы написать функцию a
с нуля. Я бы предпочел составить это из примитивных функций.
Например, я могу написать примитивную функцию для извлечения строки по имени поля:
val str: (String, JValue) => String = {(fieldName, jval) => ... }
Теперь я хотел бы составить функцию a: JValue => A
из str
. Имеет ли это смысл ?
Ну ... Я не уверен, что это актуально, но если вы используете PlayJson ..., то он предоставляет Scala Macros, чтобы выполнить эту работу очень легко. –
Argonaut, обеспечивающий легкий кодек для классов case, а также курсор для пользовательской обработки. – cchantep
@cchantep Звучит интересно. Не могли бы вы привести пример? – Michael