fastjson 实现打印空值

1 fastjson 当value为空时,打印key

OrderDto stagesDto = new OrderDto();
stagesDto.setOrderNo("1000001");
//stagesDto.setPayOrderNo("200000001");
System.out.println(JSONObject.toJSONString(stagesDto, SerializerFeature.WriteMapNullValue));
System.out.println(JSONObject.toJSONString(stagesDto));

// 打印结果
{"orderNo":"1000001","payOrderNo":null}
{"orderNo":"1000001"}

2 实体类

// 订单实体类
public class OrderDto {
    private String orderNo;
    private String payOrderNo;
    public String getOrderNo() {
        return orderNo;
    }
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    public String getPayOrderNo() {
        return payOrderNo;
    }
    public void setPayOrderNo(String payOrderNo) {
        this.payOrderNo = payOrderNo;
    }
}

3 其他属性

QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null

4 打印对象和Map<String,Object> 效果一样

OrderDto stagesDto = new OrderDto();
stagesDto.setOrderNo("1000001");
stagesDto.setPayOrderNo("200000001");
System.out.println(JSONObject.toJSONString(stagesDto));
System.out.println("---------------------");

Map<String, Object> resultDate = new HashMap<>();
resultDate.put("orderNo","1000001");
resultDate.put("payOrderNo", "200000001");
System.out.println(JSONObject.toJSONString(resultDate));
System.out.println("---------------------");
// map 转对象 String jsonStr = JSONObject.toJSONString(resultDate); stagesDto = JSONObject.parseObject(jsonStr,OrderDto.class); System.out.println(stagesDto); {"orderNo":"1000001","payOrderNo":"200000001"} --------------------- {"orderNo":"1000001","payOrderNo":"200000001"} --------------------- OrderDto{orderNo='1000001', payOrderNo='200000001'}

 

posted @ 2021-01-11 14:40  ysloong  阅读(583)  评论(0)    收藏  举报