Serialisierung und Deserialisierung von Fallklassen mit lift-json

8

Ich versuche grundlegende Serialisierung / Hydration mit Lift-Json, aber ohne Erfolg. Soweit ich das aus der Readme-Datei des Pakets ersehen kann, sollte dies funktionieren. Hilfe?

Ich benutze Scala 2.8.0 und Lift 2.2, die für 2.8 mit sbt gebaut wurden ("net.liftweb" %% "lift-json"% "2.2").

%Vor%     
Jeremy 18.02.2011, 01:52
quelle

2 Antworten

10

Lift JSONs Serialisierung funktioniert nicht für Fallklassen, die in REPL definiert sind (Paranamer kann den Bytecode nicht finden, um die Typ-Metadaten zu lesen). Kompiliere Route mit scalac und dann funktioniert das obige Beispiel.

    
Joni 18.02.2011, 07:33
quelle
2

Das gleiche Problem tritt jedes Mal auf, wenn die Klasse (de) serialuzed nicht im Klassenpfad ist. In diesem Fall kann Paranamer die Parameternamen nicht lesen. Es ist notwendig, einen benutzerdefinierten ParameterNameReader anzugeben.

Ein solches Problem gilt beispielsweise für:

  • REPL (wie erwähnt) - es sei denn, Sie definieren die Klasse außerhalb der REPL und fügen sie über classpath hinzu.
  • Play Framework - es sei denn, Sie stellen einen einfachen benutzerdefinierten ParameterNameReader bereit (siehe unten) oder laden die (de) serialisierte Klasse als Maven / Play / ... Abhängigkeit
  • Fühlen Sie sich frei, eine andere Situation hinzuzufügen (Sie können diesen Beitrag bearbeiten).

Der PlayParameterNameReader:

%Vor%     
v6ak 14.05.2011 12:13
quelle

Tags und Links