JAVA 对象序列化为JSON时,如何做到有这个属性就处理,没有就跳过?比如,之前API,中传输对象为User,它包括了两个属性: public class User{
private int id;
private String name; //GET SET 略
}
在和服务器交互时,传递的是User对象,采用的REST API,的JSON格式由于功能需求的演变,User对象需要增加一个属性age
public class User{
private int id;
private String name;
private int age;
//GET SET 略
}
如果不处理的话,前期客户端(已经发布的产品)是不带age的,而服务器现在又升级为带age的
这样APi交互转换时,就会出现JSON转换异常下面处理可以忽略这个AGE属性
@JsonIgnoreProperties(ignoreUnknown = true)
public class User{
private int id;
private String name;
@JsonIgnore
private int age;
//GET SET 略
}
但是我新版本的客户端又使用的还AGE的对象,又需要这个属性数据
这个有什么方案吗?求有经验的人指点!谢谢了!
JavaJSONAPI
private int id;
private String name; //GET SET 略
}
在和服务器交互时,传递的是User对象,采用的REST API,的JSON格式由于功能需求的演变,User对象需要增加一个属性age
public class User{
private int id;
private String name;
private int age;
//GET SET 略
}
如果不处理的话,前期客户端(已经发布的产品)是不带age的,而服务器现在又升级为带age的
这样APi交互转换时,就会出现JSON转换异常下面处理可以忽略这个AGE属性
@JsonIgnoreProperties(ignoreUnknown = true)
public class User{
private int id;
private String name;
@JsonIgnore
private int age;
//GET SET 略
}
但是我新版本的客户端又使用的还AGE的对象,又需要这个属性数据
这个有什么方案吗?求有经验的人指点!谢谢了!
JavaJSONAPI
New转为Old时没有age属性;这其实是JSON的处理问题,我自己测试了一下是可以的,用的是net.sf.json
String json = gson.toJson(user);就生成json了
具体的了解一下jackson或fastjson