Comment puis-je convertir une chaîne json pour un scala carte?
J'ai un imbriquée json dont la structure n'est pas défini. Il peut être différente à chaque fois que je lance depuis que je suis de lecture à partir d'un fichier distant. J'ai besoin de les convertir en json dans une carte de type Map[String, Any]
. J'ai essayé de regarder dans json4s et jackson analyseurs mais ils ne semblent pas à résoudre ce problème que j'ai.
Personne ne sait comment je peux faire?
Exemple de chaîne:
{"body":{
"method":"string",
"events":"string",
"clients":"string",
"parameter":"string",
"channel":"string",
"metadata":{
"meta1":"string",
"meta2":"string",
"meta3":"string"
}
},
"timestamp":"string"}
Le niveau d'imbrication peut être arbitraire et non prédéfinis.
Pour aider avec les cas d'utilisation:
J'ai une Carte[Chaîne] dont j'ai besoin de stocker dans un fichier de sauvegarde. J'ai donc la convertir en une chaîne json et le stocker dans un fichier. Désormais, chaque fois que je reçois de nouvelles données, j'ai besoin d'obtenir le json à partir du fichier, de le convertir à une carte et d'effectuer quelques calculs. Je ne peut pas stocker la carte de mémoire car je voudrais perdre que si mon travail échoue.
J'ai besoin d'une solution serait de convertir la chaîne json en arrière à l'original de la carte que j'avais avant j'ai converti en.
Pouvez-vous poster un exemple de l'JSON et tout autre code utile? ou info?
Comment pouvez-vous sérialiser
Any
?
OriginalL'auteur Udit Mehta | 2015-04-28
Vous devez vous connecter pour publier un commentaire.
J'ai essayé la méthode suivante avec
json4s
3.2.11 et ça fonctionne:Peut-être que vous n'avez pas de définir la
implicit val
de typeFormats
? Notez également que vous n'avez pas besoin d'avoir unimplicit val
à l'intérieur de chaque et chaque méthode, tant que c'est trouvable dans le champ d'application.OriginalL'auteur lambdista
Vous pouvez utiliser le code suivant pour analyser une chaîne JSON dans un
Map[String, Any]
Cependant, c'est pas typesafe et doivent donc être utilisés avec précaution lors de l'extraction de valeurs à partir de la carte.
OriginalL'auteur user297112