精华内容
下载资源
问答
  • JSONObject,JSONArray与java实体类相互转换 正常情况下: JSONObject转换为实体类: Employee employee = JSONObject.toJavaObject(param, Employee.class); JSONArray转换为实体类数组: List employees = JSON....

    JSONObject,JSONArray与java实体类相互转换

    正常情况下:

    1. JSONObject转换为实体类: Employee employee = JSONObject.toJavaObject(param, Employee.class);

    2. JSONArray转换为实体类数组: List employees = JSON.parseArray(jsonArray.toJSONString(), Employee.class);

    3. 实体类转JSONObject: JSONObject jsonObject = JSONObject.parseObject(employee.toString());

    4. 实体类数组转JSONArray: JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(employees));

    当JSONOBject的键值与实体类不一直的情况下,可以重新构造JSONObject,但只限于实体类字段比较少的情况下,太多则就不适合,那么我是利用实体类的构造方法来构造实体的:直接上代码吧!

    public class CaseOrder {
    
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        private String dateTime;    //日期
        private String provinceName;    //省份名称
        private String businessArea;        //业务领域
        private String content;     //工单内容
        private String type;        //工单类型
        private String insertTime;  //入库时间
        private ArrayList<CaseOrder> caseOrderList = new ArrayList<>();  //实体类数组当作容器使用,盛装所有构造出来的实体
        private static final HashMap<String,String> map = new HashMap();
    
        //静态代码块构造反射用的map;
        static {
            map.put("provinceName","省份名称");
            map.put("businessArea","业务领域");
            map.put("content","工单内容");
            map.put("type","工单类型");
        }
    
        public CaseOrder() {
        }
    
        /**
         * 传入JSONObject的数据
         * {"time": "2020-01-11 13:15:10",
         *  "data":
         *  [
         *   {"省份名称": "北京","业务领域": "城市客运","工单内容": "投诉出租车甩客","工单类型": "投诉举报"},
         *   {"省份名称": "北京","业务领域": "高速公路","工单内容": "投诉ETC扣费异常","工单类型": "投诉举报"}
         *  ]
         * }
         * @param jsonObject1
         */
        public CaseOrder(JSONObject jsonObject1){
    
            JSONArray data = jsonObject1.getJSONArray("data");
            //遍历data,得到所有Object
            for (int i = 0; i < data.size(); i++) {
                //得到jsonObject1,判断是否有key值未为省份名称,存储省份名称,删除省份名称key值,
                JSONObject jsonObject2 = data.getJSONObject(i);
                //利用反射创建CaseOrder的class文件
                Class<CaseOrder> caseOrderClass = CaseOrder.class;
                //定义实体类
                CaseOrder caseOrder = null;
                try {
                    //反射初始化实体类
                    caseOrder = caseOrderClass.newInstance();
                    //得到所有实体类字段
                    Field[] declaredFields = caseOrderClass.getDeclaredFields();
                    for (Field field : declaredFields) {
                        //打开暴力反射
                        field.setAccessible(true);
                        //得到字段名称
                        String name = field.getName();
                        //利用switch case default结合map ,去设置每个字段对应的值
                        switch (name) {
                            case "dateTime":
                                field.set(caseOrder, jsonObject1.getString("time"));
                                break;
                            case "caseOrderList":
                                break;
                            case "map":
                                break;
                            case "df":
                                break;
                            case "insertTime":
                                field.set(caseOrder, df.format(new Date()));
                                break;
                            default:
                                field.set(caseOrder, jsonObject2.getString(map.get(name)));
                                break;
                        }
                    }
                } catch (InstantiationException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
                //最后将实体添加到数组当中
                caseOrderList.add(caseOrder);
            }
        }
    
        //设置实体类数组的get方法
        public ArrayList<CaseOrder> getCaseOrderList() {
            return caseOrderList;
        }
    
        @Override
        public String toString() {
            return "CaseOrder{" +
                    "dateTime='" + dateTime + '\'' +
                    ", provinceName='" + provinceName + '\'' +
                    ", businessArea='" + businessArea + '\'' +
                    ", content='" + content + '\'' +
                    ", type='" + type + '\'' +
                    ", insertTime='" + insertTime + '\'' +
                    '}';
        }
    }
    

    测试方法

    public class test {
        public static void main(String[] args) {
            String str = "{\n" +
                    "\t\"time\": \"2020-01-11 13:15:10\",\n" +
                    "\t\"data\": [{\n" +
                    "\t\t\"省份名称\": \"北京\",\n" +
                    "\t\t\"业务领域\": \"城市客运\",\n" +
                    "\t\t\"工单内容\": \"投诉出租车甩客\",\n" +
                    "\t\t\"工单类型\": \"投诉举报\"\n" +
                    "\t},{\n" +
                    "\t\t\"省份名称\": \"北京\",\n" +
                    "\t\t\"业务领域\": \"高速公路\",\n" +
                    "\t\t\"工单内容\": \"投诉ETC扣费异常\",\n" +
                    "\t\t\"工单类型\": \"投诉举报\"\n" +
                    "\t}]\n" +
                    "}\n";
            System.out.println(str);
            JSONObject jsonObject = JSONObject.parseObject(str);
            CaseOrder caseOrder = new CaseOrder(jsonObject);
            System.out.println(caseOrder.getCaseOrderList());
    

    结果打印:
    [
    CaseOrder
    {dateTime=‘2020-01-11 13:15:10’,
    provinceName=‘北京’,
    businessArea=‘城市客运’,
    content=‘投诉出租车甩客’,
    type=‘投诉举报’,
    insertTime='2020-01-12 12:14:18
    '},
    CaseOrder
    {dateTime=‘2020-01-11 13:15:10’,
    provinceName=‘北京’,
    businessArea=‘高速公路’,
    content=‘投诉ETC扣费异常’,
    type=‘投诉举报’,
    insertTime=‘2020-01-12 12:14:18’
    }
    ]

    如果有更好的方法,请不吝赐教!

    展开全文
  • java项目实体类转换实例
  • java 实体类时间类型 自动转换格式

    万次阅读 2019-06-12 16:23:32
    java 实体类时间类型 自动转换格式 /** 提交时间 **/ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8" ) private...

    java 实体类时间类型 自动转换格式

        /** 提交时间 **/
        @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
        @JsonFormat(
                pattern = "yyyy-MM-dd HH:mm:ss",
                timezone = "GMT+8"
        )
        private Date submitdate;

     

    展开全文
  • Java实体类日期转换

    千次阅读 2019-10-24 20:14:22
    class Person{ @DateTimeFormat(pattern = “yyyy-MM-dd”) //前台传数据到后台 @JsonFormat(pattern = “yyyy-MM-dd”,timezone="GMT+8")// 后台传数据到前台 private Date birthday; //----------------------...
    class Person{
    	@DateTimeFormat(pattern = “yyyy-MM-dd”) //前台传数据到后台
    	@JsonFormat(pattern = “yyyy-MM-dd”,timezone="GMT+8")// 后台传数据到前台
    	private Date birthday;
    	//--------------------------------get/set----------------------------------------
    }
    
    
    展开全文
  • json与java实体类相互转换

    千次阅读 2020-05-11 14:21:26
    java实体类如下: ··· public class VersionInfo { String productname; String productversion; List features; List enhances; List compatibilitys; List others; //省略set get } ··· 创建json字符串用于...

    ##直接上干货 这里实现的是一个 json转实体类的底层方式,
    如果是简单实体类的话,可以使用fastjson工具包中的 JSONObject.toJavaObject(Class)方法。
    java实体类如下:

     public class VersionInfo {
        String productname;
        String productversion;
        List<String> features;
        List<String> enhances;
        List<String> compatibilitys;
        List<String> others;
    
      //省略set get
    }
    

    创建json字符串用于测试

    VersionInfo versionInfo = infos.getVersionInfo();
            Gson gosn = new Gson();
            String json = gosn.toJson(versionInfo);
    

    对上面得到的json进行解析

    JSONObject param = null;
            try {
                param = new JSONObject(json);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            System.out.println(param);
            //========创建json======
            JSONArray featuresarray = null;
            JSONArray enhancesarray = null;
            JSONArray compatibilitysarray = null;
            JSONArray othersarray = null;
            try {
                featuresarray = param.getJSONArray("features");
                enhancesarray = param.getJSONArray("enhances");
                compatibilitysarray = param.getJSONArray("compatibilitys");
                othersarray = param.getJSONArray("others");
            //    System.out.println(featuresarray);
            //    System.out.println(enhancesarray);
            //    System.out.println(compatibilitysarray);
            //    System.out.println(othersarray);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            ArrayList<String> featuresarraylist = new ArrayList<>();
            ArrayList<String> enhancesarraylist = new ArrayList<>();
            ArrayList<String> compatibilitysarraylist = new ArrayList<>();
            ArrayList<String> othersarraylist = new ArrayList<>();
            for(int i=0;i<featuresarray.length();i++){
                featuresarraylist.add(featuresarray.get(i).toString());
            }
            for(int i=0;i<enhancesarray.length();i++){
                enhancesarraylist.add(enhancesarray.get(i).toString());
            }
            for(int i=0;i<compatibilitysarray.length();i++){
                compatibilitysarraylist.add(compatibilitysarray.get(i).toString());
            }
            for(int i=0;i<othersarray.length();i++){
                othersarraylist.add(othersarray.get(i).toString());
            }
            String productname = param.getString("productname");  //简单的直接获取值
            String productversion = param.getString("productversion");  //简单的直接获取值
            System.out.println(productname);
            System.out.println(productversion);
            System.out.println(featuresarraylist);
            System.out.println(enhancesarraylist);
            System.out.println(compatibilitysarraylist);
            System.out.println(othersarraylist);
    
        }
    
    ···
    所引用的包
    
    import com.google.gson.Gson; //用于生成json字符串测试对象,不是核心,可以不用
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    ···
    下面展示测试结果
    ···
    数据处理11系统
    12
    []
    [1 数据管理系统(DM)优化启动、加载数据目录等功能, 2 本次针对V9.1_Alpha版做了大量优化及bug修复, 3 数据上传	提供了默认地图和数据源信息,简化项目部署]
    [1本次产品发布均为新的子系统,新的产品单独成包,这里不再做说明。, 2注意:如果您的产品是V9.1_Alpha版本准备升级,请再核对V9.1_Alpha版本兼容性说明中的表和字段是否已经补全(V9.1_Alpha在发版后字段做过调整)]
    [1 元数据库及空间库新增支持运行PostgreSQL]
    ···
    
    展开全文
  • 遍历Java实体类属性及值 核心代码 /** * * @Title: getPostParams * @Description: 将实体类clazz的属性转换为url参数 * @param clazz 参数实体类 * @return * String */ private String getPostParams...
  • json与java实体类的相互转换

    万次阅读 2015-04-13 20:08:55
    json与java实体类的相互转换
  • Java代码实体类生成SQL语句(Java实体类转数据库)

    万次阅读 多人点赞 2021-07-19 17:43:04
    有的时候把数据库删了,如果照着实体类重新创建数据库的话比较麻烦,可以使用这个工具,把代码复制到项目里面设置一下即可把Java代码中的实体类转换为SQL语句输出为一个文件,打开执行命令即可。 代码如下: ...
  • java实体类转换为map

    2017-09-01 09:52:00
    import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.InvocationTargetException;import java.l...
  • 在线JSON字符串转换java实体类 在线JSON字符串转换java实体类 在线JSON字符串转换java实体类 在线JSON字符串转换java实体类 在线JSON字符串转换java实体类 在线JSON字符串转换java实体类 在线JSON...
  • Java实体类之间的相互转换

    千次阅读 2020-08-04 15:03:56
    在pom.xml配置文件中添加依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId>...创建第一个实体类School public class School { pr
  • import java.io.IOException;import java.util.ArrayList;import com.fasterxml.jackson.databind.ObjectMapper;import com.fh.panghu.entity.User;import net.sf.json.JSONArray;import net.sf...
  • java 实体类中日期格式转换

    千次阅读 2019-10-09 09:31:26
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 在实体类时间字段上加上这个注解即可 转载于:https://www.cnblogs.com/ldl326308/p/9852258.html
  • json自动转换java实体类

    千次阅读 2019-03-05 18:49:21
    今天测试百度的接口时,得到了一个...分享一个自动转json为java实体类的网站!!! 太强了!!! http://www.bejson.com/json2javapojo/new/ 然后就可以用fastjson里的 JSON.parseObject(str,WalkRoute.class);...
  • 给一个表名,自动生成java实体类,方便实用容易上手。前提,表中至少有一条数据。
  • java xml与实体类转换

    千次阅读 2018-01-05 16:07:33
    只能在getter/setter方法上使用@XmlElement和@XmlAttribute注解,否则由java对象生成xml时会报同一个属性在java类里存在两次的错误。 同理,如果@XmlAccessorType的访问权限为XmlAccessType.NONE,如果在java的...
  • package ...import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Field;import...
  • java实体类实现时间日期自动转换

    万次阅读 2019-04-23 09:40:26
    需要在get方法上面加入 @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 这个注解就可以了

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,238
精华内容 57,695
关键字:

java实体类时间转换

java 订阅