fastJson如何序列化一个包含list对象的Map对象,如Map<String,List<T>>类型的对象

利用阿里的json工具还是挺方便的,直接看代码


1、先有一个实体类StudentInfoDto


package com.myapp.dto;


import java.util.Date;


import com.alibaba.fastjson.annotation.JSONField;


public class StudentInfoDto extends Object{
    private Integer studentSn;


    private String studentName;
    
    private String sex;
    
    /**
     * 序列化日期,使之按照指定格式输出,如果不指定,则会输出当前时间戳
     * 比如:2017-08-02 16:50:29.929
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss.SSS")
    private Date birthday;
    
    public StudentInfoDto(){
   
    }
    
    public void setBirthday(Date birthday) {
this.birthday = birthday;
}
    
    public Date getBirthday() {
return birthday;
}
    
    public StudentInfoDto(Integer studentSn,String studentName,String sex,Date birthday){
    super();
    this.studentSn = studentSn;
    this.studentName = studentName;
    this.sex = sex;
    this.birthday = birthday;
    }


    public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
    
public Integer getStudentSn() {
return studentSn;
}


public void setStudentSn(Integer studentSn) {
this.studentSn = studentSn;
}


public String getStudentName() {
return studentName;
}


public void setStudentName(String studentName) {
this.studentName = studentName;
}
    
}


2、再写一个main类


package com.myapp.core;


import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import com.alibaba.fastjson.JSON;
import com.myapp.dto.StudentInfoDto;
/**
 * 阿里json的学习
 * @author Administrator
 *
 */
public class TestMapToJson {

public static Map<String, List<StudentInfoDto>> getMapListData(){
List<StudentInfoDto> list1 = new ArrayList<StudentInfoDto>();
list1.add(new StudentInfoDto(1, "张三", "男1",new Date()));
list1.add(new StudentInfoDto(2, "李四", "女2",new Date()));
list1.add(new StudentInfoDto(3, "王五", "女3",new Date()));
List<StudentInfoDto> list2 = new ArrayList<StudentInfoDto>();
list2.add(new StudentInfoDto(7, "张七", "男7",new Date()));
list2.add(new StudentInfoDto(8, "陈八", "男8",new Date()));
list2.add(new StudentInfoDto(9, "刘九", "女9",new Date()));
Map<String, List<StudentInfoDto>> map = new HashMap<String,List<StudentInfoDto>>();
map.put("A123", list1);
map.put("B789", list2);
return map;
}

public static void main(String[] args) {
String jsString = JSON.toJSONString(getMapListData());
System.out.println(jsString);
}
}


3、控制台打印

{"B789":[{"birthday":"2017-08-02 17:04:36.417","sex":"男7","studentName":"张七","studentSn":7},{"birthday":"2017-08-02 17:04:36.417","sex":"男8","studentName":"陈八","studentSn":8},{"birthday":"2017-08-02 17:04:36.417","sex":"女9","studentName":"刘九","studentSn":9}],"A123":[{"birthday":"2017-08-02 17:04:36.417","sex":"男1","studentName":"张三","studentSn":1},{"birthday":"2017-08-02 17:04:36.417","sex":"女2","studentName":"李四","studentSn":2},{"birthday":"2017-08-02 17:04:36.417","sex":"女3","studentName":"王五","studentSn":3}]}


如此即可

猜你喜欢

转载自blog.csdn.net/lichuangcsdn/article/details/76585829