Scala 2.10 + Json de sérialisation et de désérialisation
Scala 2.10 semble avoir brisé quelques-uns des vieux bibliothèques (au moins pour le moment) comme Jerkson et soulevez-json.
La cible de l'utilisabilité est comme suit:
case class Person(name: String, height: String, attributes: Map[String, String], friends: List[String])
//to serialize
val person = Person("Name", ....)
val json = serialize(person)
//to deserialize
val sameperson = deserialize[Person](json)
Mais je vais avoir du mal à trouver de bons moyens existants de la production et de la désérialisation Json qui travaillent avec Scala 2.10.
Sont là les meilleures pratiques façons de le faire en Scala 2.10?
Vous devez vous connecter pour publier un commentaire.
Jackson est une bibliothèque Java pour traiter JSON rapide. Le Jerkson projet enveloppements Jackson, mais semble être abandonnée. J'ai passé à Jackson Scala Module pour la sérialisation et la désérialisation natif Scala structures de données.
Pour l'obtenir, inclure les éléments suivants dans votre
build.sbt
:Alors votre exemples de travail textuellement avec la suite de Jackson wrapper (j'ai extrait de jackson-module-scala fichiers de test):
D'autres Scala 2.10 JSON options incluent Twitter scala-json basé sur la Programmation Scala livre-c'est simple, au détriment des performances. Il est également spray-json, qui utilise étuvé pour l'analyse. Enfin, Jouer JSON manutention a l'air sympa, mais il n'est pas facile de dissocier de la pièce de projet.
erasure
semble obsolèteDe mentionner json4s qui encapsule jackson, ascenseur-json ou de sa propre implémentation native comme une solution à long terme:
Je peux vous recommander chaudement argonaut pour la prise en charge de json en scala. Tout ce que vous devez le configurer pour sérialiser vos Client de l'objet est une ligne:
Qui permettra de customiser votre classe pour lui donner un
.asJson
méthode qui le transforme en une chaîne de caractères. Il sera également pimp la classe string pour lui donner une méthode.decodeOption[List[Customer]]
analyser les chaînes. Il gère les options de votre classe d'amende. Ici, c'est un travail de classe avec un test de passage et une méthode main qui vous pouvez vous déplacer dans un git clone de argonaut de voir que tout fonctionne bien:Les développeurs sont également utiles et adaptés pour les gens de commencer.
Il y a maintenant une fourchette de Jerkson qui prend en charge la Scala 2.10 à https://github.com/randhindi/jerkson.
Sur la base de l'absence d'un message d'erreur et le mauvais exemple de code, je suis soupçonner c'est plus une question de juste ne pas comprendre comment l'ascenseur-json extraction des œuvres. Si j'ai mal compris, de faire un commentaire et laissez-moi savoir. Donc, si je suis à droite, puis voici ce que vous devez.
Pour sérialiser:
Puis d'inverser le processus, vous feriez quelque chose comme:
Si ce n'est pas la partie que vous êtes d'avoir des ennuis avec, alors faites-le moi savoir et je peux essayer de modifier ma réponse pour être plus utile.