使用json-lib将Java对象转SONObject,Java集合转JSONArray
来源:互联网 发布:win7旗舰版优化服务 编辑:程序博客网 时间:2024/06/06 17:30
解析用的json包
gradle 引用
net.sf.json-lib:json-lib:2.4:jdk15
待转换的java类
public class User implements Serializable { private String name; private List<Order> orders; private Date createDate = new Date(); ...}public class Order implements Serializable { private String sn; private BigDecimal amount; private Date createTime = new Date(); private Set<Item> items; ...}public class Item implements Serializable { private String pid; private String pName; ...}
数据初始化
@Beforepublic void init() { try { Item item = new Item(); item.setPid("pid_1"); item.setpName("pName"); Order order = new Order(); order.setAmount(new BigDecimal(3.4).setScale(2, BigDecimal.ROUND_HALF_DOWN)); order.setSn("ordersn_001"); order.setItems(Collections.singleton(item)); user = new User(); user.setName("akio"); user.setCreateDate(new Date()); user.setOrders(Collections.singletonList(order)); users = Collections.singletonList(user); } catch (Exception e) { e.printStackTrace(); }}
转换
@Testpublic void testObjectToJson() { try { JsonConfig jsonConfig = new JsonConfig(); //注册类中的属性名称转换 jsonConfig.registerJsonPropertyNameProcessor(User.class, new PropertyNameProcessor() { @Override public String processPropertyName(Class arg0, String arg1) { // 处理User的属性,将user中的属性在json中转为大写 // 如果要处理Order的属性,需要重新注册一个PropertyNameProcessor return arg1.toUpperCase(); } }); //注册时间类型的格式转换 jsonConfig.registerJsonValueProcessor(Date.class, new JsonValueProcessor() { @Override public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) { return DateFormatUtils.format((Date) arg1, "yyyy-MM-dd HH:mm:ss:SSS"); } @Override public Object processArrayValue(Object arg0, JsonConfig arg1) { return null; } }); //注册Item类的转换,返回自定义的jsonObject jsonConfig.registerJsonBeanProcessor(Item.class, new JsonBeanProcessor() { @Override public JSONObject processBean(Object arg0, JsonConfig arg1) { Item u = (Item) arg0; return new JSONObject().element("name_pid", u.getPid()); } }); //定义java类的不需要被转换的属性所标记的注解类 //在java类中的getter方法中添加注解类@JsonIgnore后,在此处也做相应的添加,则转换后的json中不包含相应的属性 // jsonConfig.addIgnoreFieldAnnotation(JsonIgnore.class); JSONObject json = JSONObject.fromObject(user, jsonConfig); System.out.println(json.toString()); JSONArray array = JSONArray.fromObject(users, jsonConfig); System.out.println(array.toString()); } catch (Exception e) { e.printStackTrace(); }}
0 0
- 使用json-lib将Java对象转SONObject,Java集合转JSONArray
- 使用json-lib将JSONObject转Java对象,JSONArray转Java集合
- 使用json-lib将Java对象转json死循环问题
- 使用json-lib将java对象转换成json字符串
- SONObject、JSONArray
- 使用JSON-LIB转换JAVA对象
- 使用JSON-LIB转换JAVA对象
- 使用JSON-LIB转换JAVA对象
- JSONArray转java实体集合提示MorphDynaBean
- 将json转换为java集合对象
- 使用json-lib JSONObject JSONArray
- json-lib 实现Java对象与json的互转
- JSON字符串和java对象的互转【json-lib】
- JSON字符串和java对象的互转【json-lib】
- JSON字符串和java对象的互转【json-lib】
- JSON字符串和java对象的互转【json-lib】
- JSON字符串和java对象的互转【json-lib】
- Json字符串与Java对象互转(使用json-lib类库)
- centos 如何查看操作系统是哪个版本
- cocoaPod的Podfile文件的创建和内容格式
- 重新调整从左到右从上到下以"*,@"分割图纸数据
- x264 理解趣谈
- 公共子串
- 使用json-lib将Java对象转SONObject,Java集合转JSONArray
- 散列--PAT.B1039&A1092.到底买不买
- SylixOS KN_SMP_WMB()内存屏障函数解析
- Android Studio 插件之内存泄露检测LeakCanary使用
- 关于iOS学习进阶的必读一些博客总结
- Python实现学生信息管理系统(修改版)
- android studio一直卡在gradle build running界面
- 无题
- HBase跨版本数据迁移总结