Невозможно преобразовать в объект java с помощью GSON - PullRequest
0 голосов
/ 06 августа 2020

У меня есть следующий JSON, который мне нужно преобразовать в Java Object

[{
    "emp": {
        "name": "pavan"
    },
    "dept": {
        "deptName": "cse"
    }
}]

Я пытаюсь преобразовать этот JSON в Java Object, используя GSON Framework

public class Root {
    
    private Data data ;

    public Data getData() {
        return data;
    }

    public void setData(Data data) {
        this.data = data;
    }

}



public class Data {
    
    private Emp emp;

    private Dept dept;

    public void setEmp(Emp emp){
        this.emp = emp;
    }
    public Emp getEmp(){
        return this.emp;
    }
    public void setDept(Dept dept){
        this.dept = dept;
    }
    public Dept getDept(){
        return this.dept;
    }

}



public class Emp
{
    private String name;

    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }
}


  public class Dept
{
    private String deptName;

    public void setDeptName(String deptName){
        this.deptName = deptName;
    }
    public String getDeptName(){
        return this.deptName;
    }

Это мой тестовый класс

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        String json = "[{\r\n" + 
                "   \"emp\": {\r\n" + 
                "       \"name\": \"pavan\"\r\n" + 
                "   },\r\n" + 
                "   \"dept\": {\r\n" + 
                "       \"deptName\": \"cse\"\r\n" + 
                "   }\r\n" + 
                "}]";
        
        Gson gson = new Gson();
        
        Root[] root = gson.fromJson(json, Root[].class);
        
        System.out.println(root[0].getData());
        

    }

Я использую GSON для преобразования json в Java Object Я получаю null, когда выполняю getData, может ли кто-нибудь сказать мне, почему преобразование не происходит

1 Ответ

1 голос
/ 06 августа 2020

Класс Root является избыточным.

Измените

 Root[] root = gson.fromJson(json, Root[].class);

на

 Data[] data= gson.fromJson(json, Data[].class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...