利用fastjson序列化对象

来源:互联网 发布:淘宝被恶意投诉售假 编辑:程序博客网 时间:2024/05/17 18:03
fastjson-version: fastjson-1.1.6.jarauthor: sherine_zjuDate: 2016/05/26

1.序列化一个普通对象

1.1 对象定义

public class JSONobject {    Date time;    int Pid;    String activity;    float x;    float y;    public Date getTime() {        return time;    }    public void setTime(Date time) {        this.time = time;    }    public int getPid() {        return Pid;    }    public void setPid(int pid) {        Pid = pid;    }    public String getActivity() {        return activity;    }    public void setActivity(String activity) {        this.activity = activity;    }    public float getX() {        return x;    }    public void setX(float x) {        this.x = x;    }    public float getY() {        return y;    }    public void setY(float y) {        this.y = y;    public Date transStringToDate(String time){            Date date = null;            try              {                  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");                  date = sdf.parse(time);              }              catch (Exception e)              {                  System.out.println(e.getMessage());              }             return date;        }}

1.2 利用fastjson序列化为Json String

public class fastjson {      public static void main(String[] args) {          // TODO Auto-generated method stub          JSONobject ins = new JSONobject();          ins.setTime(transStringToDate("2014-6-06 20:12:07"););          ins.setPid(1);          //序列化          String text = JSON.toJSONString(ins);          System.out.println(text);          //存为json文件    String file = "e://z_word//csvJson.json";    FileWriter fwriter = null;    try {        fwriter = new FileWriter(file);        fwriter.write(text);    } catch (IOException ex) {        ex.printStackTrace();    } finally {    try {       fwriter.flush();       fwriter.close();    } catch (IOException ex) {       ex.printStackTrace();      }    }      }  } 

2.序列化一个List对象

List<>对象,List<List<>>对象,List<List<List<>>>都可以序列化,这里的例子是序列化List<List<>>对象。

注意一定要是List对象,ArrayList不可以,会报错。

fastjson.JSONException : create asm serilizer error, class class JSONobject

2.1 JsonObject定义

public class JSONobject {    Date time;    int Pid;    String activity;    float x;    float y;    List<ReadCSV> subpart = new ArrayList();    private List<List<ReadCSV>> parts = new ArrayList();      public List<ReadCSV> getSubpart() {        return subpart;    }    public void setSubpart(List<ReadCSV> subpart) {        this.subpart = subpart;    }    public List<List<ReadCSV>> getParts() {        return parts;    }    public void setParts(List<List<ReadCSV>> parts) {        this.parts = parts;    }    public Date getTime() {        return time;    }    public void setTime(Date time) {        this.time = time;    }    public int getPid() {        return Pid;    }    public void setPid(int pid) {        Pid = pid;    }    public String getActivity() {        return activity;    }    public void setActivity(String activity) {        this.activity = activity;    }    public float getX() {        return x;    }    public void setX(float x) {        this.x = x;    }    public float getY() {        return y;    }    public void setY(float y) {        this.y = y;    }      }

2.2 fastjson序列化List

    //得到聚类结果    ArrayList<ArrayList<ReadCSV>> cluster=k.getCluster();    //结果存为json变量    JSONobject jsoNobject = new JSONobject();    for(int i=0;i<cluster.size();i++)    {           jsoNobject.getParts().add(cluster.get(i));      }       String text = JSON.toJSONString(jsoNobject);      System.out.println(text);    //保存为json文件    String file = "e://z_word//csvJson.json";    FileWriter fwriter = null;    try {        fwriter = new FileWriter(file);        fwriter.write(text);    } catch (IOException ex) {        ex.printStackTrace();    } finally {    try {       fwriter.flush();       fwriter.close();    } catch (IOException ex) {       ex.printStackTrace();      }    }
0 0
原创粉丝点击