json-lib javabean转换为首字母大写的json串
依赖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、主函数
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.PropertyNameProcessor;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* Created by Administrator on 2017/5/7.
*/
public class JsonUpperCaseTest {
public static void main(String[] args) {
Person person = new Person();
person.setId(1);
person.setName("xiaoming");
List<Address> addresses = new ArrayList<Address>();
Address address = new Address();
address.setName("xian");
addresses.add(address);
person.setAddresses(addresses);
Map<String,Class<?>> classMap = new HashMap<String,Class<?>>();
classMap.put("addresses", Address.class);
//bean小写转大写
JsonConfig config=new JsonConfig();
config.setRootClass(Person.class);
config.setClassMap(classMap);
config.setExcludes(new String[]{"xxxxx"});
PropertyNameProcessor upperCasePropertyNameProcessor = new PropertyNameProcessor() {
@Override
public String processPropertyName(Class aClass, String s) {
//把Person对象中的name属性替换为xxxxx
if (aClass == Person.class && s.equals("name")) {
return "xxxxx";
}
return s.substring(0,1).toUpperCase() + s.substring(1);
}
};
config.registerJsonPropertyNameProcessor(Person.class, upperCasePropertyNameProcessor);
config.registerJsonPropertyNameProcessor(Address.class, upperCasePropertyNameProcessor);
//首字母大写 fromObject方法中,第一个参数是Object的时候,config才生效。String不生效
JSONObject jsonObject = JSONObject.fromObject(person,config);
//过滤person中的name,保留address中的name
jsonObject = JSONObject.fromObject(jsonObject,config);
System.out.println(jsonObject);
}
}
程序说明:javabean转首字母大写的json串,并且过滤person中的name属性
4、运行结果
{"Id":1,"Addresses":[{"Name":"xian"}]}
posted on 2017-05-07 14:57 liulongzhiyu 阅读(820) 评论(0) 编辑 收藏 举报