json-lib首字母大写的json串转javabean

依赖jar:

commons-beanutils-1.9.3.jar?

commons-collections-3.1.jar

commons-lang-2.4.jar

commons-logging-1.2.jar

ezmorph-1.0.6.jar

json-lib-2.4-jdk15.jar

测试程序:

1、Person.java:

import java.util.List;

/** * Created by Administrator on 2017/5/6. */public class Person {    private int id;    private String name;    private List<Address> addresses;

public int getId() {        return id;    }

public void setId(int id) {        this.id = id;    }

public String getName() {        return name;    }

public void setName(String name) {        this.name = name;    }

public List<Address> getAddresses() {        return addresses;    }

public void setAddresses(List<Address> addresses) {        this.addresses = addresses;    }

@Override    public String toString() {        return "Person{" +                "id=" + id +                ", name=‘" + name + ‘\‘‘ +                ", addresses=" + addresses +                ‘}‘;    }}

2、Address.java:
public class Address {    private String name;

public String getName() {        return name;    }

public void setName(String name) {        this.name = name;    }

@Override    public String toString() {        return "Address{" +                "name=‘" + name + ‘\‘‘ +                ‘}‘;    }}

3、主函数
JsonConfig config=new JsonConfig();config.setRootClass(Person.class);

Map<String,Class<?>> classMap = new HashMap<String,Class<?>>();classMap.put("addresses", Address.class);config.setClassMap(classMap);

PropertyNameProcessor lowerCasePropertyNameProcessor = new PropertyNameProcessor() {    @Override    public String processPropertyName(Class aClass, String s) {        return s.substring(0,1).toLowerCase() + s.substring(1);    }};

config.registerJavaPropertyNameProcessor(Person.class, lowerCasePropertyNameProcessor);config.registerJavaPropertyNameProcessor(Address.class, lowerCasePropertyNameProcessor);

//大写转bean小写String jsonString = "{\"Id\":3,\"Name\":\"xiaoming\",\"Addresses\":[{\"Name\":\"xian\"}]}";JSONObject jsonObject = JSONObject.fromObject(jsonString);Person person = (Person) JSONObject.toBean(jsonObject, config);System.out.println(person);

4、运行结果Person{id=3, name=‘xiaoming‘, addresses=[Address{name=‘xian‘}]}
时间: 2024-11-05 15:51:17

json-lib首字母大写的json串转javabean的相关文章

使用Jackson解析首字母大写的json字符串

Jackson在解析返回的json字符串时始终报错,纠结很久之后才找到原因,原来是是由于json字符串中的字母都是首字母大写,导致jackson找不到相应的KEY. 在项目中经常使用从服务器获取的数据,有时从服务器获取的json字符串中的首字母是大写的,使用Jackson解析是就会报一下错误: Exception in thread "main" org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecogniz

如果json中的key需要首字母大写怎么解决?

一般我们命名都是驼峰式的,可是有时候和第三方接口打交道,也会遇到一些奇葩,比如首字母大写........额 这是个什么鬼,对方这么要求,那我们也得这么写呀. 于是乎,第一种方式:把类中的字段首字母大写,简单粗暴,然后生成setter getter.然后测试......给跪了 发现还是小写,额滴个亲娘呀,恁是咋回事儿呀. 原来 jackson在把类转成json的时候,看的是setter getter方法.也就是javabean. 搜噶. 于是乎,我们是否可以指定json的字段名呢,比如类中叫wha

Java c# 跨语言Json反序列化首字母大小写问题

C#标准是首字母大写,Java规范是首字母小写,在序列化成Json之后,反序列化会出现反序列化失败的问题.. 从C#反序列化成JavaBean的时候通过如下注解可以直接解决该问题 @JsonNaming(value = PropertyNamingStrategy.UpperCamelCaseStrategy.class) 将该注解放到对应的class上,即可从大写首字母的Json串,反序列化成JavaBean. 原文地址:https://www.cnblogs.com/eviltuzki/p/

ASP.NET Core中返回 json 数据首字母大小写问题

asp.net core  默认输出的json数据首字母会改成小写,考虑可能是为了前端js的书写习惯,毕竟js 操作大小写敏感. 在Startup类的ConfigureServices()方法中进行配置,DefaultContractResolver() 原样输出,返回的 json 与后台定义一致 // This method gets called by the runtime. Use this method to add services to the container. public

JS replace()方法-字符串首字母大写

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. replace()方法有两个参数,第一个参数是正则表达式,正则表达式如果带全局标志/g,则是代表替换所有匹配的字符串,否则是只替换第一个匹配串.第二个参数可以是字符串,也可以是函数.$1.$2...表示与正则表达式匹配的文本. There are many ways we can make a difference. Global change starts with you. Sign up f

java string,需要进行首字母大写改写

java string,需要进行首字母大写改写,网上大家的思路基本一致,就是将首字母截取,转化成大写然后再串上后面的,类似如下代码 //首字母大写     public static String captureName(String name) {         name = name.substring(0, 1).toUpperCase() + name.substring(1);        return  name;           } 将字符串name 转化为首字母大写.但是

css实现将英文语句第一个单词首字母大写

css实现将英文语句第一个单词首字母大写:英文语句,通常第一个单词的首字母是大写的,下面就通过代码实例介绍一下如何利用css实现此功能.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.cn/" /> <title&g

text-transform设置单词首字母大写

text-transform 一.语法   text-transform 主要用于设置文本的大小写. text-transform有5个值,分别如下: none. 默认值. capitalize. 文本中的每个单词的首字母大写. uppercase. 仅设置大写. lowercase. 仅设置小写. inherit. 继承父类text-transform的值. 二.用法 p.capitalize {text-transform: capitalize} <p class="capitali

廖雪峰 练习 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字

# -*- coding: utf-8 -*- #输入名字,变成首字母大写,其他字母小写的标准格式 def normalize(name): str1 = '' for i, ch in enumerate(name): if i == 0: str1 = str1 + ch.upper() #str.upper() 方法让字母转大写 else: str1 = str1 + ch.lower() #str.lower() 方法让字母转小写 return str1 # 输入: L1 = ['ada