JSON对象转换成对象,将json字符串的key值统一转成大写或者小写

本文介绍了一种解决JSON字符串与JavaBean属性名大小写不匹配的问题,通过使用JsonConfig和JavaIdentifierTransformer实现JSON字符串中key与JavaBean属性的正确映射,特别针对包含集合的复杂JSON结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将json字符串转成javabean,有时字符串的key和javabean的属性存在大小写的区别,在转换的时候,无法将json字符串的key和javabean的属性对应在一起,导致转成的javabean的一下属性值为空,在这里,统一将javabean的属性名称用大写表示(用小写也行)。

以下样例以JSONArray作为举例,json字符串是一个list集合转换成的json字符串,,在list集合中,list中包含有其他list,对于这种结构,需要设置一些属性,才能将包含有集合的json字符串完美转成javabean。

以下为样例代码

json字符串样例

[{
	"name": "哈哈",
	"number": "1234",
	"descriptionItems": [{
		"itemDetail": "1991111",
		"ITEMID": "12011204",
		"ITEMNAME": "卧槽",
		"PARITEMID": ""
	}]
}]

    转换方法


public class OnestyleDetailVO {
	private String NAME;
	private String NUMBER;
	private List<OnestyleDescriptionItems> DESCRIPTIONITEMS;
	public String getNAME() {
		return NAME;
	}
	public void setNAME(String nAME) {
		NAME = nAME;
	}
	public String getNUMBER() {
		return NUMBER;
	}
	public void setNUMBER(String nUMBER) {
		NUMBER = nUMBER;
	}
	public List<OnestyleDescriptionItems> getDESCRIPTIONITEMS() {
		return DESCRIPTIONITEMS;
	}
	public void setDESCRIPTIONITEMS(List<OnestyleDescriptionItems> dESCRIPTIONITEMS) {
		DESCRIPTIONITEMS = dESCRIPTIONITEMS;
	}
}

public class OnestyleDescriptionItems {
	private String ITEMDETAIL;
	private String ITEMID;
	private String ITEMNAME;
	private String PARITEMID;
	public String getITEMDETAIL() {
		return ITEMDETAIL;
	}
	public void setITEMDETAIL(String iTEMDETAIL) {
		ITEMDETAIL = iTEMDETAIL;
	}
	public String getITEMID() {
		return ITEMID;
	}
	public void setITEMID(String iTEMID) {
		ITEMID = iTEMID;
	}
	public String getITEMNAME() {
		return ITEMNAME;
	}
	public void setITEMNAME(String iTEMNAME) {
		ITEMNAME = iTEMNAME;
	}
	public String getPARITEMID() {
		return PARITEMID;
	}
	public void setPARITEMID(String pARITEMID) {
		PARITEMID = pARITEMID;
	}
}
JSONArray jsonObject = JSONArray.fromObject(jsonResult);
Map<String, Class> classMap = new HashMap<String, Class>();  
classMap.put("DESCRIPTIONITEMS", OnestyleDescriptionItems.class);  
JsonConfig jc = new JsonConfig();
jc.setClassMap(classMap);
jc.setRootClass(OnestyleDetailVO.class);
jc.setJavaIdentifierTransformer(new JavaIdentifierTransformer() {
	@Override
	public String transformToJavaIdentifier(String str) {//将json字符串的key值均转为大写
		return str.toUpperCase();
	}
});
List<OnestyleDetailVO> list = (List<OnestyleDetailVO>) JSONArray.toCollection(jsonObject, jc);

注:相关json引用

net.sf.json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值