需求:json字符串转成对象,存储到数据库中 字段不确定,除了固定字段外可能会有其他字段的处理 解决方案:固定字段使用注解@JsonProperty接收 非固定字段使用@JsonAnySetter和@JsonAnyGet
需求:json字符串转成对象,存储到数据库中
字段不确定,除了固定字段外可能会有其他字段的处理
解决方案:固定字段使用注解@JsonProperty接收
非固定字段使用 @JsonAnySetter和@JsonAnyGetter接收
package models.testModel;
import com.alibaba.acm.shaded.org.codehaus.jackson.annotate.JsonAnyGetter;
import com.alibaba.acm.shaded.org.codehaus.jackson.annotate.JsonAnySetter;
import com.alibaba.acm.shaded.org.codehaus.jackson.annotate.JsonProperty;
import java.util.HashMap;
import java.util.Map;
/**
* @Author: ZD
* @Date: 2023/8/25
*/
public class BidResultJson {
@JsonProperty("项目编号")
//@SerializedName("项目编号")
public BidResultJsonString bidding_project_num;
@JsonProperty("项目名称")
//@SerializedName("项目名称")
public BidResultJsonString bidding_project_name;
// 获取未知字段的映射
public Map<String, BidResultJsonString> json_other_fields = new HashMap<>();
@JsonAnySetter
public void setUnknownField(String name, BidResultJsonString value) {
json_other_fields.put(name, value);
}
@JsonAnyGetter
public Map<String, BidResultJsonString> getUnknownFields() {
return json_other_fields;
}
}
转换方式
import com.alibaba.acm.shaded.org.codehaus.jackson.map.ObjectMapper;
ObjectMapper objectMapper = new ObjectMapper();
BidResultJson parse = objectMapper.readValue("json字符串", BidResultJson.class);