1. 程式人生 > >struts2的fastjson,jackson轉換json簡單使用

struts2的fastjson,jackson轉換json簡單使用

println lte ebe mat tin over release led 逗號

一.Fastjson使用

  1.導入fastjson.jar包

  2.使用方法

  對於對象和集合使用同樣的方法

    使用JSON.toJSONString(對象)返回一個json對象

  3.如果對Date類型進行格式化輸出

    @JSONField(format="yyyy-MM-dd")

    private Date birthday;

  4.關於屬性是否生成在json串中設置

    在action中new一個SerializeFilter 

SerializeFilter filter = new PropertyFilter(){
@Override
public boolean apply(Object object, String name, Object value) {
System.out.println(object);//要轉換成json的對象
System.out.println(name);//屬性的名稱
System.out.println(value);//屬性值
if("id".equals(name)){
return false;//返回false代表不生成json串中
}
return true;//代表生成在json串中
}
};
JSON.toJSONString(對象,filter);

二.jackson的使用
 1.導入jackson的jackson.jar包
   2.使用方法
對於對象和集合使用同樣的方法
    ObjectMapper mapper = new ObjectMapper();
    Sring json = mapper.writeValueAsString(對象);
  3.處理日期類型
    ObjectMapper mapper = new ObjectMapper();
    mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd");//設置日期格式化器
    Sring json = mapper.writeValueAsString(對象);
  4.過濾屬性
    1.實體類下所有的屬性過濾
    在實體類中添加註解
    @JsonIgnoreProperties({"id","releaseDate"})//過濾的屬性使用逗號隔開
    public class Product{
      private int id;
      private Sting name;
      private Date releaseDate;  
    }
    2.單個action的屬性過濾
    @JsonFilter("productFilter")//使用註解定義過濾的實體類名
    public class Product{
      private int id;
      private Sting name;
      private Date releaseDate;  
    }
    action中編碼的實現
    //FilterProvider fp = new SimpleFilterProvider().addFilter("productFilter",
    //          SimpleBeanPropertyFilter.filterOutAllExcept("id","name"));//只包含id與name
    FilterProvider fp = new SimpleFilterProvider().addFilter("productFilter",
              SimpleBeanPropertyFilter.serializeAllExcept("id","name"));//不包含id與name
    mapper.setFilters(fp);    
    
    String json = mapper.writeValueAsString(對象);
    


 

struts2的fastjson,jackson轉換json簡單使用