关于使用JSON.toJSONString(参数1,参数2)

Sku基本类如下

public class Sku {
          
   
    // 编号
    private Integer skuId;
    // 商品名称
    private String skuName;
    // 单价
    private Double skuPrice;
    // 购买个数
    private Integer totalNum;
    // 总价
    private Double totalPrice;
    // 商品类型
    private Enum skuCategory;

    //全参 无参 构造器

    //插入基本的set get方法

    @Override
    public String toString() {
          
   
        return "Sku{" +
                "skuId=" + skuId +
                ", skuName=" + skuName +  +
                ", skuPrice=" + skuPrice +
                ", totalNum=" + totalNum +
                ", totalPrice=" + totalPrice +
                ", skuCategory=" + skuCategory +
                };
    }
}

测试类

@Test
   public void findFirstTest(){
          
   
       Optional<Sku> optional = list.stream()
               .findFirst();
       System.out.println("结果1----optional = " + optional.get());
       System.out.println("----------");
       System.out.println(“结果2----”+JSON.toJSONString(optional.get(),false));
       System.out.println("----------");
       System.out.println(“结果3——”+JSON.toJSONString(optional.get(),true));
   }

结果输出

结果1----optional = Sku{
          
   skuId=654032, skuName=无人机, skuPrice=4999.0, totalNum=1, totalPrice=4999.0, skuCategory=ELECTRONICS}
----------
结果2----{
          
   "skuCategory":"ELECTRONICS","skuId":654032,"skuName":"无人机","skuPrice":4999.0,"totalNum":1,"totalPrice":4999.0}
----------
结果3----{
          
   
	"skuCategory":"ELECTRONICS",
	"skuId":654032,
	"skuName":"无人机",
	"skuPrice":4999.0,
	"totalNum":1,
	"totalPrice":4999.0
}

讨论

如果pojo基本类里没有重写toString方法,结果会不会不一样? ——答案:不一样。结果如下。 没写toString,输出会没有结果,如结果1 但此时,JSON.toJSONString却能正常输出 另外,JSON.toJSONString的参数2,决定展示效果 false是结果2 true是结果3

结果1----optional = com.具体路径.cart.Sku@704921a5
----------
结果2----{
          
   "skuCategory":"ELECTRONICS","skuId":654032,"skuName":"无人机","skuPrice":4999.0,"totalNum":1,"totalPrice":4999.0}
----------
结果3----{
          
   
	"skuCategory":"ELECTRONICS",
	"skuId":654032,
	"skuName":"无人机",
	"skuPrice":4999.0,
	"totalNum":1,
	"totalPrice":4999.0
}
经验分享 程序员 微信小程序 职场和发展