java复杂json字符串转为java对象
Posted timelessmemoryli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java复杂json字符串转为java对象相关的知识,希望对你有一定的参考价值。
有复杂json串如下
"DEPT_ID":"1",
"DEPT_NAME":"教育部"
key值全部大写,并且又下划线分割;要求封装为如下bean
public class Bean
private String deptId;
private String deptName;
public String getDeptId()
return deptId;
public void setDeptId(String deptId)
this.deptId = deptId;
public String getDeptName()
return deptName;
public void setDeptName(String deptName)
this.deptName = deptName;
那就需要对json串的key进行转换 使用的是json-lib
/**
* 将key转为标准命名方式
* @param str
* @return
*/
private static String transferToRegularName(String str)
char[] chars = str.toCharArray();
char[] res = new char[chars.length];
for(int i = 0, j = 0; i < chars.length;)
if (chars[i] != '_')
res[j] = Character.toLowerCase(chars[i]);
if ((i + 1) < chars.length)
if (chars[i + 1] == '_')
res[j + 1] = chars[i + 2];
j = j + 2;
i = i + 3;
else
i++;
j++;
else
i++;
j++;
else
res[j] = chars[i + 1];
j = j + 1;
i = i + 2;
return new String(res).trim();
/**
* 格式化json并转为bean
* @param jsonObject
* @param clz
* @return
*/
public static <T> T transferToObject(JSONObject jsonObject, Class<T> clz)
JSONObject result = new JSONObject();
Iterator<String> keys = jsonObject.keys();
while(keys.hasNext())
String key = keys.next();
result.put(transferToRegularName(key), jsonObject.get(key));
return (T)JSONObject.toBean(result, clz);
以上是关于java复杂json字符串转为java对象的主要内容,如果未能解决你的问题,请参考以下文章