将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 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 getDESCRIPTIONITEMS() {
return DESCRIPTIONITEMS;
}
public void setDESCRIPTIONITEMS(List 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 classMap = new HashMap();
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 list = (List) JSONArray.toCollection(jsonObject, jc);
注:相关json引用
net.sf.json