如何使用jackson将Json映射到Java对象

时间:2017-06-08 00:30:15

标签: java json jackson

我正在使用jackson来映射我从post rest rest api获取的json到map对象。

json代表

{
  "baseName": "xyz",
  "salary": [
    {
      "id": 1,
      "info": {
        "ename": "john",
        "eid": 143
      }
    },
    {
      "id": 2,
      "info": {
        "ename": "bg",
        "eid": 123
      }
    }
  ]
}

java类由

表示

BaseInfo.java

class BaseInfo {
     String baseName;
     ArrayList<salary> salaries = new ArrayList<salary>();
}

Salary.java

class Salary {
    int id;
    EmplInfo emp;
}

EmplInfo.java

class EmplInfo{
    String ename;
    int eid;
}

但是在用这个json调用api的时候我得到了arraylist的初始化但是包含了nothings。我做错了什么?我得到其他信息,如baseName等

2 个答案:

答案 0 :(得分:0)

您可以使用JsonProperty注释rename properties

class BaseInfo {
    String baseName;
    @JsonProperty("salary")
    ArrayList<salary> salaries = new ArrayList<salary>();
}

class Salary {
    int id;
    @JsonProperty("info")
    EmplInfo emp;
}

答案 1 :(得分:0)

以下是解决方案:

添加Michael指定的JsonProperty注释或更新json键,即'salary'到'工资'和'info'到'emp'