2013-04-11 4 views
1

Перед игрой 2.1 и Scala 2.10 Я использовал Джеркссона.Сериализация Json в Scala 2.10

К сожалению, официально не выпущена версия Джеркссона, совместимая с Scala 2.10 (пока).

Я с тех пор использую Jackson с модулем Scala, но у меня нет желаемого поведения с перечислениями.

Я пытаюсь использовать Play +2,1 чтение, запись и формат, используя зарождение макросъемки, но это, кажется, очень больно, и мне нужно, чтобы добавить шаблонный материал для моих моделей так, что зарождение работы:

object User extends ((String, String, Option[String], Option[String], Long, Long, Boolean, Boolean, ObjectId) => User) { 
... 
} 

Тогда Я могу использовать implicit val userFormat: Format[User] = Json.format[User]

И я до сих пор не может динамически сериализации Object, а просто User

Я не смотрел на Lift, но это, кажется, добавить столько, сколько шаблонного кода в Play 2.1. Библиотека Json.


Я думаю, что сериализация должна быть простой в любом языке. Я не хочу писать пользовательские сериализаторы или настраиваемые парсеры.

Я ожидаю, что библиотека для работы с кодом вроде этого:

case class User(name: String, status: Status.Value) 
val myUser = User("toto",Status.VALID) 
val myMap: Map[String,Object] = ("key1" -> myUser, "key2" -> "value2") 
Json.serialize(myMap) 

Это то, что предусмотрено в Java с Gson, Джексоном и другими инструментами, как это.


Так что с помощью Scala 2.10 я не знаю, какой инструмент использовать. И я не понимаю, почему нам нужно создавать пользовательские сериализаторы для таких простых случаев. Возможно, Play2.1 Json быстрее, потому что он основан на Macro, но нет возможности, чтобы, если нет формата, если он использует отражение или что-то еще?

Знаете ли вы, что какой-либо инструмент, способный быть уместным для моего использования?

+0

обработка JSON была исправлена ​​в Play 2.1.1 - по крайней мере, для моего случая использования обновления решены мои вопросы. https://plus.google.com/+playframework/posts/SQvSEne13HK – mattanja

+0

спасибо @mattanja проверит, что –

ответ

1

Существует множество вилок Jerkson, перенесенных на 2.10, но я не знаю, сколько из них выпущено в хранилища Maven.

Here's mine, который в основном получен из Rand Hindi's плюс несколько моих собственных исправлений.

+0

Спасибо. Ранд Хинди - друг, и я знал о его хранилище. Но мы стартап, и я бы хотел избежать неофициальных релизов, потому что это неофициально, и это добавляет нагрузки на процесс разработки, особенно для разработчиков JS, которые не знают maven и должны будут клонировать форт и строить его локально. У нас нет Nexus или что-то в этом роде. –

+0

Кстати, вчера я увидел новый запрос на трекинг на Jerkson для Scala 2.10, так что, возможно, он скоро будет интегрирован? «codahale автор 10 месяцев назад» -> Думаю, это может занять некоторое время :( –