关于网友提出的“ 关于JSONObject解析json数据,获取不到指定key的问题”问题疑问,本网通过在网上对“ 关于JSONObject解析json数据,获取不到指定key的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 关于JSONObject解析json数据,获取不到指定key的问题
描述: 调用别家的api接口返回的参数名首字母是大写的,而根据JSONObject解析方式是不支持参数名首字母大写,有人遇到过这个问题么?有啥解决方案。
json数据如下:
{"AutoCode":"1"}
bean如下:
public class AutoCode {
private String AutoCode;
public String getAutoCode() {
return AutoCode;
}
public void setAutoCode(String AutoCode) {<>
this.AutoCode = AutoCode;
}
}
控制台输出:2012-4-11 12:01:22 net.sf.json.JSONObject toBean
警告: Tried to assign property AutoCode:java.lang.String to bean of class com.roiland.bean.AutoCode
把json数据首字母小写就ok了,但是这个数据不是我们能控制的,希望能提供类似JSONObject键值对重写之类的方法。
解决方案1: String json = "{\"AutoCode\":\"1\"}";
JSONObject jsonObject = JSONObject.fromObject(json);
JsonConfig config = new JsonConfig();
config.setJavaIdentifierTransformer(new JavaIdentifierTransformer() {
@Override
public String transformToJavaIdentifier(String str) {
char[] chars = str.toCharArray();
chars[0] = Character.toLowerCase(chars[0]);
/>
return new String(chars);
}
});
config.setRootClass(Test.class);
Object bean = JSONObject.toBean(jsonObject , config);
System.out.println(bean);
以上介绍了“ 关于JSONObject解析json数据,获取不到指定key的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2112407.html