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中也可以通过反射等小技巧去实现,也节省了不少代码的编写。

目录
相关文章
|
7月前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Student.java
hibernate正向生成数据库表以及配置——Student.java
|
JSON Java Apache
Bean自动映射工具对比及VO、DTO、PO、DO对象之间的转换
在实际的开发过程中,常常遇到各个层之间对象转换,比如 VO、DTO、PO、DO 等,而如果都是手动set、get,一旦属性较多时,操作起来不仅麻烦,而且浪费时间,因此经常会使用一些工具类,进行对象之间的转换,下面将对象与对象之间转换的方式进行对比,一级对象间的使用进行总结。
Bean自动映射工具对比及VO、DTO、PO、DO对象之间的转换
|
3月前
|
前端开发 fastjson Java
我的字段被FastJson给干掉了?!
本文记录作者升级到 JDK 11 后遇到的 FastJSON 序列化问题,以及详细的排查过程。
128 12
|
JSON 算法 fastjson
com.alibaba.fastjson转换JSONObject数据后顺序与原JSON字符串顺序不一致原因分析
Json字符串转JSONObject对象保证属性及其内部JSONObject有序(本身顺序而非需要指定排序)
2901 1
|
缓存 安全 fastjson
Fastjson姿势技巧集合2
Fastjson姿势技巧集合
461 0
|
网络协议 安全 fastjson
Fastjson姿势技巧集合 1
Fastjson姿势技巧集合
270 0
|
SQL Java 关系型数据库
SpringBoot 系列 JPA 错误姿势之 Entity 映射
本篇为 JPA 错误使用姿势第二篇,java 的 POJO 类与数据库表结构的映射关系,除了驼峰命名映射为下划线之外,还会有什么别的坑么?
549 0
SpringBoot 系列 JPA 错误姿势之 Entity 映射
|
安全 Java Maven
PO VO DTO 转换神器替代BeanUtils 了(二)
PO VO DTO 转换神器替代BeanUtils 了
147 0
|
Java Spring
PO VO DTO 转换神器替代BeanUtils 了(三)
PO VO DTO 转换神器替代BeanUtils 了
193 0
|
前端开发 数据库
mybatisplus---接口返回的数据为null
mybatisplus---接口返回的数据为null
mybatisplus---接口返回的数据为null

热门文章

最新文章