Jsonlib使用PropertyNameProcessor处理属性首字母为大写的情况
来源:互联网 发布:mac版草图大师专业版 编辑:程序博客网 时间:2024/06/01 09:39
package com.zzj.jsonlib;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import net.sf.json.JSONObject;import net.sf.json.JsonConfig;import net.sf.json.processors.PropertyNameProcessor;import com.zzj.jsonlib.vo.User;import com.zzj.jsonlib.vo.user.Address;import com.zzj.jsonlib.vo.user.Order;/** * 使用PropertyNameProcessor处理属性首字母为大写的情况 * @author lenovo * */public class PropertyNameProcessorTest {public static void main(String[] args) {User user = new User("001", "123");List<Order> orderList = new ArrayList<Order>();Order order = new Order();Address address = new Address();address.setState("YN");order.setAddress(address);order.setOID("123");order.setOrderStatus("shipped");orderList.add(order);user.setOrderList(orderList);JsonConfig jsonConfig = new JsonConfig();PropertyNameProcessor propertyNameProcessor = new PropertyNameProcessor() {@Overridepublic String processPropertyName(Class target, String fieldName) {System.out.println(target);System.out.println(fieldName);return fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);}};jsonConfig.registerJsonPropertyNameProcessor(User.class, propertyNameProcessor);jsonConfig.registerJsonPropertyNameProcessor(Order.class, propertyNameProcessor);jsonConfig.registerJsonPropertyNameProcessor(Address.class, propertyNameProcessor);JSONObject jsonObject = JSONObject.fromObject(user, jsonConfig);String jsonStr = jsonObject.toString();System.out.println(jsonStr);System.out.println("-----------------------------------------------------");jsonObject = JSONObject.fromObject(jsonStr);jsonConfig = new JsonConfig();jsonConfig.setRootClass(User.class);Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();classMap = new HashMap<String, Class<?>>();classMap.put("OrderList", Order.class);jsonConfig.setClassMap(classMap);propertyNameProcessor = new PropertyNameProcessor() {@Overridepublic String processPropertyName(Class target, String elementName) {System.out.println(target);System.out.println(elementName);//处理第二个字母为大写的情况if (elementName.length() > 1) {String secondChar = elementName.substring(1, 2);if (secondChar.toUpperCase().equals(secondChar)) {return elementName;}}return elementName.substring(0, 1).toLowerCase() + elementName.substring(1);}};jsonConfig.registerJavaPropertyNameProcessor(User.class, propertyNameProcessor);jsonConfig.registerJavaPropertyNameProcessor(Order.class, propertyNameProcessor);jsonConfig.registerJavaPropertyNameProcessor(Address.class, propertyNameProcessor);user = (User) JSONObject.toBean(jsonObject, jsonConfig);System.out.println(user);}}
User:
package com.zzj.jsonlib.vo;import java.util.List;import com.zzj.jsonlib.vo.user.Order;public class User {private String Username;private String Password;private List<Order> OrderList;public User() {}public User(String username, String password) {Username = username;Password = password;}public String getUsername() {return Username;}public void setUsername(String username) {Username = username;}public String getPassword() {return Password;}public void setPassword(String password) {Password = password;}public List<Order> getOrderList() {return OrderList;}public void setOrderList(List<Order> orderList) {OrderList = orderList;}@Overridepublic String toString() {return "User [Username=" + Username + ", Password=" + Password+ ", OrderList=" + OrderList + "]";}}
Order:
package com.zzj.jsonlib.vo.user;public class Order {private String OID;private String OrderStatus;private Address Address;public String getOID() {return OID;}public void setOID(String oID) {OID = oID;}public String getOrderStatus() {return OrderStatus;}public void setOrderStatus(String orderStatus) {OrderStatus = orderStatus;}public Address getAddress() {return Address;}public void setAddress(Address address) {Address = address;}@Overridepublic String toString() {return "Order [OID=" + OID + ", OrderStatus=" + OrderStatus+ ", Address=" + Address + "]";}}
Address:
package com.zzj.jsonlib.vo.user;public class Address {private String State;public String getState() {return State;}public void setState(String state) {State = state;}@Overridepublic String toString() {return "Adrress [State=" + State + "]";}}
输出结果:
class com.zzj.jsonlib.vo.UserorderListclass com.zzj.jsonlib.vo.user.OrderOIDclass com.zzj.jsonlib.vo.user.Orderaddressclass com.zzj.jsonlib.vo.user.Addressstateclass com.zzj.jsonlib.vo.user.OrderorderStatusclass com.zzj.jsonlib.vo.Userpasswordclass com.zzj.jsonlib.vo.Userusername{"OrderList":[{"OID":"123","Address":{"State":"YN"},"OrderStatus":"shipped"}],"Password":"123","Username":"001"}-----------------------------------------------------class com.zzj.jsonlib.vo.UserOrderListclass com.zzj.jsonlib.vo.user.OrderOIDclass com.zzj.jsonlib.vo.user.OrderAddressclass com.zzj.jsonlib.vo.user.AddressStateclass com.zzj.jsonlib.vo.user.OrderOrderStatusclass com.zzj.jsonlib.vo.UserPasswordclass com.zzj.jsonlib.vo.UserUsernameUser [Username=001, Password=123, OrderList=[Order [OID=123, OrderStatus=shipped, Address=Adrress [State=YN]]]]
2 0
- Jsonlib使用PropertyNameProcessor处理属性首字母为大写的情况
- Jackson使用PropertyNamingStrategy处理属性首字母为大写的情况
- 使用Jackson2.4解析属性首字母为大写的JSON串
- String首字母大写处理
- jsonlib的测试使用
- fastjson属性首字母大写问题
- java json gson 属性 大写 首字母 大写
- 字符串首字母置为大写
- 字符串首字母替换为大写。
- 为何C#属性名称的首字母要大写
- 将汉字转换为大写的拼音首字母
- Json 关于首字母不能为大写的问题
- 把一个字符串的首字母转成大写,其余为小写。(
- 使用 Visual C# .NET 将字符串转换为小写、大写或词首字母大写
- Json 和 Jsonlib 的使用
- Json 和 Jsonlib 的使用
- Json 和 Jsonlib 的使用
- Json 和 Jsonlib 的使用
- python之自动化生成解析ini文件的Qt类
- Android Studio 导入Volley模块后 gradle的修改。
- Android 接口定义语言AIDL使用解说
- 无法启动tomcat服务器,屏幕一闪而过
- Java Socket通信实现带联机功能的俄罗斯方块
- Jsonlib使用PropertyNameProcessor处理属性首字母为大写的情况
- 淘宝客推广教程-飞鸟淘宝客推广教程
- github SSH authentication
- JavaWeb---框架SpringMvc+Mybatis开发项目第一季(共三季)
- fork创建进程
- 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数.输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,
- PostgreSQL: array 数组类型添加元素 数组的使用
- MySQL 实现 lastindexof 的方法
- Java log日志输出