2015-08-29 3 views
-1
data_user = "{"id":1,"lastName":"lastName","name":"name","school":{"id":1}}" 

public class School { 
    private int id; 
    private String name; 
} 

public class User { 
    private int id; 
    private String lastName; 
    private String name; 
    private School school; 
} 

Comment désérialiser JSON data_user en objet java Utilisateur?Comment faire pour convertir Json en objet Java, désérialisation Json

J'ai essayé avec Gson:

Gson gson = new Gson(); 
User user = gson.fromJson(data_user, User.class) 

Mais j'ai une erreur avec ce code parce que le JSON contient une école qui n'a pas le nom de l'école.

Comment puis-je sérialiser le JSON en objet Java?

+1

Quelle est votre erreur? Fournissez votre trace de pile. – Zarwan

+0

Une erreur (compiler) est la chaîne de 'data_user' qui manque un' '' '. Une autre erreur (runtime) est que 'User' n'a pas de membre' school', mais qu'il a un 'country' (?). – Andreas

Répondre

3

School.java

public class School { 
    private int id; 
    private String name; 
    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    @Override 
    public String toString() { 
     return "School [id=" + id + ", name=" + name + "]"; 
    } 
} 

User.java

public class User { 
    private int id; 
    private String lastName; 
    private String name; 
    private School school; 
    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getLastName() { 
     return lastName; 
    } 
    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public School getSchool() { 
     return school; 
    } 
    public void setSchool(School school) { 
     this.school = school; 
    } 
    @Override 
    public String toString() { 
     return "User [id=" + id + ", lastName=" + lastName + ", name=" + name 
       + ", school=" + school + "]"; 
    } 
} 

Main.java

import com.google.gson.Gson; 
import com.google.gson.GsonBuilder; 
import com.testgson.beans.User; 

public class Main { 
    private static Gson gson; 

    static { 
     gson = new GsonBuilder().create(); 
    } 

    public static void main(String[] args) { 
     String j = "{\"id\":1,\"lastName\":\"lastName\",\"name\":\"ignacio\",\"school\":{\"id\":1}}"; 
     User u = gson.fromJson(j, User.class); 
     System.out.println(u); 
    } 
} 

Résultat

User [id=1, lastName=lastName, name=ignacio, school=School [id=1, name=null]] 
1

Essayez avec la Bibliothèque Jackson. Avec Gson avec ne devrait avoir aucun problème, j'ai essayé avec le code de @Saurabh et cela fonctionne bien