• list转json的一些问题


    利用JSONArray转换list

    定义的model:

     1 package com.yds.model;
     2 
     3 import java.util.Date;
     4 
     5 
     6 
     7 public class DeviceHistory {
     8 
     9     private int id; 
    10     private Date acq_time; 
    11     
    12     
    13     
    14     public int getId() {
    15         return id;
    16     }
    17     public void setId(int id) {
    18         this.id = id;
    19     }
    20     public String getDevice_id() {
    21         return device_id;
    22     }
    23     
    24     public Date getAcq_time() {
    25         return acq_time;
    26     }
    27     public void setAcq_time(Date acq_time) {
    28         this.acq_time = acq_time;
    29     }
    30 
    31 }

    测试类:

    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import net.sf.json.JSONArray;
    import com.yds.model.DeviceHistory;
    public class Test { public static void main(String[] args) { List<DeviceHistory> list = new ArrayList<DeviceHistory>(); DeviceHistory dh = new DeviceHistory(); dh.setAcq_time(new Date()); list.add(dh); JSONArray json =JSONArray.fromObject(list); System.out.println(json.toString()); } }

    打印结果为:

    [{"acq_time":{"date":18,"day":2,"hours":21,"minutes":7,"month":7,"seconds":27,"time":1439903247640,"timezoneOffset":-480,"year":115},"id":0}]

    开始时我用的JSONArray在action中进行list转换 发现到JSONArray json =JSONArray.fromObject(list);就执行不下去了,经过一番调发现是时间转换时出了问题,就换了jackson进行转换

    测试类:

     1 import java.io.IOException;
     2 import java.util.ArrayList;
     3 import java.util.Date;
     4 import java.util.List;
     5 
     6 import org.codehaus.jackson.JsonGenerationException;
     7 import org.codehaus.jackson.map.JsonMappingException;
     8 import org.codehaus.jackson.map.ObjectMapper;
     9 import com.yds.model.DeviceHistory;
    10 
    11 public class Test {
    12     public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {
    13         List<DeviceHistory> list = new ArrayList<DeviceHistory>();
    14         DeviceHistory dh = new DeviceHistory();
    15         dh.setAcq_time(new Date());
    16         list.add(dh);
    17         ObjectMapper objectMapper = new ObjectMapper();
    18         String json = objectMapper.writeValueAsString(list);
    19         System.out.println(json);
    20     }
    21 
    22 }

    打印结果为:

    [{"id":0,"acq_time":1439904893237}] 这样action也能执行下去了

  • 相关阅读:
    面向对象(OOP:Objdec Oriented Programming)
    vue中v-model和v-bind区别
    DateTimeFormat
    html中frameset简介
    学习及资料地址
    mybatis+oracle批量新增带序列List对象
    Io流读取并输出文件(例如.mp3格式文件)
    Java从服务器下载图片保存到本地
    转:Java DecimalFormat的主要功能及使用方法
    数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
  • 原文地址:https://www.cnblogs.com/lzy1991/p/4740714.html
Copyright © 2020-2023  润新知