fastjson反向生成po

简介: 使用fastjson反向生成po的属性

以前都是根据po生成数据库表,现在越来越多的调用第三方接口去实现自己的业务系统,所以按照第三方的接口规范去实现自己的调用逻辑变成了自己的日常工作,下面介绍如何根据第三方的接口返回的json格式的数据,生成自己对应的业务po类的属性,fastjson提供了很好的支持

importcom.alibaba.fastjson.JSON;
importcom.alibaba.fastjson.JSONObject;
importcom.alibaba.fastjson.parser.Feature;
importjava.math.BigDecimal;
importjava.util.Iterator;
publicclassTestJson {
publicstaticvoidmain(String[] args) throwsException{
Stringjson="{\n"+"                \"date\": \"22\",\n"+"                \"ymd\": \"2018-09-22\",\n"+"                \"age\": 2,\n"+"                \"price\": 2365.256,\n"+"                \"week\": \"星期六\",\n"+"                \"sunrise\": \"05:57\",\n"+"                \"high\": \"高温 26.0℃\",\n"+"                \"low\": \"低温 15.0℃\",\n"+"                \"sunset\": \"18:10\",\n"+"                \"aqi\": 55.0,\n"+"                \"fx\": \"西北风\",\n"+"                \"fl\": \"4-5级\",\n"+"                \"type\": \"晴\",\n"+"                \"notice\": \"愿你拥有比阳光明媚的心情\"\n"+"            }";
JSONObjectjsonObject=JSON.parseObject(json, Feature.OrderedField);
//正式提取未知的key值Iterator<String>sIterator=jsonObject.keySet().iterator();
//循环并得到key列表while (sIterator.hasNext()) {
// 获得keyStringkey=sIterator.next();
ObjectkeyObject=jsonObject.get(key);
if(keyObjectinstanceofString){
System.out.println("private String "+key.substring(0, 1).toLowerCase() +key.substring(1)+";");
            }elseif(keyObjectinstanceofNumber){
if(keyObjectinstanceofInteger){
System.out.println("private Integer "+key.substring(0, 1).toLowerCase() +key.substring(1)+";");
                }elseif(keyObjectinstanceofBigDecimal){
System.out.println("private BigDecimal "+key.substring(0, 1).toLowerCase() +key.substring(1)+";");
                }
            }
        }
    }
}

对于po嵌套或者集合类,可以自行扩展,大大提高了工作效率。对于返回的json对应到自己的po中也可以通过反射等小技巧去实现,也节省了不少代码的编写。

目录
相关文章
|
JSON Java Apache
Bean自动映射工具对比及VO、DTO、PO、DO对象之间的转换
在实际的开发过程中,常常遇到各个层之间对象转换,比如 VO、DTO、PO、DO 等,而如果都是手动set、get,一旦属性较多时,操作起来不仅麻烦,而且浪费时间,因此经常会使用一些工具类,进行对象之间的转换,下面将对象与对象之间转换的方式进行对比,一级对象间的使用进行总结。
Bean自动映射工具对比及VO、DTO、PO、DO对象之间的转换
|
2月前
|
设计模式 开发框架 Java
分清 PO、VO、DAO、BO、DTO、POJO 含义
分清 PO、VO、DAO、BO、DTO、POJO 含义
|
JSON 算法 fastjson
com.alibaba.fastjson转换JSONObject数据后顺序与原JSON字符串顺序不一致原因分析
Json字符串转JSONObject对象保证属性及其内部JSONObject有序(本身顺序而非需要指定排序)
2828 1
|
12月前
|
Java
springboot中VO属性别名
springboot中VO属性别名
118 0
|
Java 数据库
详述 PO VO BO DTO DAO 和 POJO 的概念及区别
详述 PO VO BO DTO DAO 和 POJO 的概念及区别
214 0
|
前端开发 Java API
深度解读JAVA中的DO、BO、VO、DTO、AO、PO、DO、AO各自的含义
在刚接触一些比较规范代码的时候就遇到了这些,用于描述对象的不同类型,每个模块都是相互依赖的,所以在这里进行一个详细系统的总结。
1065 0
|
安全 Java Maven
PO VO DTO 转换神器替代BeanUtils 了(一)
PO VO DTO 转换神器替代BeanUtils 了
194 0
|
安全 Java Maven
PO VO DTO 转换神器替代BeanUtils 了(二)
PO VO DTO 转换神器替代BeanUtils 了
138 0
|
Java Spring
PO VO DTO 转换神器替代BeanUtils 了(三)
PO VO DTO 转换神器替代BeanUtils 了
186 0
|
设计模式 前端开发 Java
5年老鸟带你区分 VO、PO、DTO、BO、POJO、JavaBean、Entity(有图,记得收藏)
5年老鸟带你区分 VO、PO、DTO、BO、POJO、JavaBean、Entity(有图,记得收藏)
1544 0
5年老鸟带你区分 VO、PO、DTO、BO、POJO、JavaBean、Entity(有图,记得收藏)