2014-07-21 6 views
0

Je tente de convertir un identifiant String de la page dans un nouvel ObjectID, donc je peux travailler en utilisant person.getId();Nouvel ObjectID (id) non valide, mais c'est un ID valide dans la base de données

la page envoyer un identifiant de chaîne, mais pour remplir, je dois le transformer en un ObjectID (ou il imprimera « PRÉVU D'UN OBJET MAIS A ÉTÉ UNE STRING)

donc je créé un deserialize qui interceptent le jsonElement avant d'aller à l'objet personne

@Override 
    public ObjectId deserialize(JsonElement jsElement, Type Type, 
      JsonDeserializationContext context) throws JsonParseException { 

     //the id that i receive is this one -> 53c9e605278cd4d23e1152bb 

     ObjectId obj = new ObjectId(jsElement.toString()); 
     return obj; 
    } 

de cette façon que je reçois cette erreur:

java.lang.IllegalArgumentException: invalid ObjectId ["53c9e605278cd4d23e1152bb"] 

mais si je l'utilise de cette façon:

@Override 
     public ObjectId deserialize(JsonElement jsElement, Type Type, 
       JsonDeserializationContext context) throws JsonParseException { 

      //the id that i receive is this one -> 53c9e605278cd4d23e1152bb 

      ObjectId obj = new ObjectId("53c9e605278cd4d23e1152bb"); 
      return obj; 
     } 

ça marche, pourquoi? si elle obtient l'id directement à partir du JsonElement = ne fonctionne pas, mais si j'utilise ctrl c + ctrl v, ça marche !!

Répondre

Questions connexes