背景:
我有个对象,过来个json,
想用这个对象接收json中的值,对象中属性名与json中key值不一致
实现:
这个时候@JSONField注解就派上用场了,不能直接放在属性上,要放在set方法上
模拟:
1、 搞个对象,属性名分别为name,hobby,age,
@Data
public class PandaContentx {
private String name;
private String hobby;
private int age;
public String getName() {
return name;
}
@JSONField(name = "name2")
public void setName(String name) {
this.name = name;
}
public String getHobby() {
return hobby;
}
@JSONField(name = "hobby2")
public void setHobby(String hobby) {
this.hobby = hobby;
}
public int getAge() {
return age;
}
@JSONField(name = "age2")
public void setAge(int age) {
this.age = age;
}
}
2、传过来的json串: key 值分别是 name2、 hobby2、age2
[
{
"name2":"panda",
"hobby2":"kongfu",
"age2":18
}
]
3、转化:json字符串转对象
String jsonStr ="[{\"name2\":\"panda\",\"hobby2\":\"kongfu\",\"age2\":18}]";
JSONArray jsonArray = JSONArray.parseArray(jsonStr);
List<PandaContentx> list = jsonArray.toJavaList(PandaContentx.class);
System.out.println(list.get(0).toString());
4、结果:所有值都接到了
PandaContentx(name=panda, hobby=kongfu, age=18)