org.codehaus.jackson.carte.JsonMappingException: ne Peut pas instancier une valeur de type [type simple, les modèles de classe.Job] de Chaîne JSON
- je utiliser le playframework et a essayé de désérialiser certains json en un objet java.
Il a bien fonctionné, sauf que la relation dans le modèle. Je suis l'exception suivante
entrez le code hereorg.codehaus.jackson.carte.JsonMappingException: ne Peut pas
instancier une valeur de type [type simple, les modèles de classe.Job] de JSON
Chaîne; pas une seule Chaîne de constructeur par défaut/méthode (par référence
chaîne: modèles.Un document["job"])
j'ai pensé jackson en combinaison avec le jeu pouvait le faire:
c'est le json
{"name":"asd","filepath":"blob","contenttype":"image/png","description":"asd","job":"1"}
et mon code, rien de spécial:
public static Result getdata(String dataname) {
ObjectMapper mapper = new ObjectMapper();
try {
Docfile docfile = mapper.readValue((dataname), Docfile.class);
System.out.println(docfile.name);
docfile.save();
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return ok();
}
Espère qu'il y aura de l'aide pour moi, merci
Markus
Mise à JOUR:
D'Un Document Bean:
package models;
import java.util.*;
import play.db.jpa.*;
import java.lang.Object.*;
import play.data.format.*;
import play.db.ebean.*;
import play.db.ebean.Model.Finder;
import play.data.validation.Constraints.*;
import play.data.validation.Constraints.Validator.*;
import javax.persistence.*;
import com.avaje.ebean.Page;
@Entity
public class Docfile extends Model {
@Id
public Long id;
@Required
public String name;
@Required
public String description;
public String filepath;
public String contenttype;
@ManyToOne
public Job job;
public static Finder<Long,Docfile> find = new Model.Finder(
Long.class, Docfile.class
);
public static List<Docfile> findbyJob(Long job) {
return find.where()
.eq("job.id", job)
.findList();
}
public static Docfile create (Docfile docfile, Long jobid) {
System.out.println(docfile);
docfile.job = Job.find.ref(jobid);
docfile.save();
return docfile;
}
}
Veuillez ajouter le code source du fichier doc bean.
Mis à jour le fichier doc bean
Mis à jour le fichier doc bean
OriginalL'auteur Markus Pleines | 2012-06-20
Vous devez vous connecter pour publier un commentaire.
Soit vous changez votre JSON afin de décrire votre "travail" de l'entité :
ou vous créer un constructeur avec un paramètre de Chaîne dans votre Travail bean:
OriginalL'auteur ndeverge
quand temps limité +ee: +jax-rs && +la persistance, +gson; j'ai résolu alors:
OriginalL'auteur Oleksii Kyslytsyn