gpt4 book ai didi

java - 如果没有用Gson初始化如何不写float(GsonBuilder())

转载 作者:行者123 更新时间:2023-12-02 09:12:40 26 4
gpt4 key购买 nike

我的POJO:

public class MyObj{
String index;
float spread;
}

我的发电机:

MyObj stub = new MyObj();
stub.setIndex("1234");
// stub.setSpread(0.20f);

我的 toString 方法:

@Override
public String toString() {
return new GsonBuilder().setPrettyPrinting().registerTypeAdapter(ZonedDateTime.class, new ZonedDateTimeAdapter().nullSafe()).create().toJson(this);
}

我的 JSON 结果是:

{
"index": "1234",
"spread": 0.0
}

但我想要:

{
"index": "1234"
}

最佳答案

GSon 默认设置预见 null 属性不会显示在生成的 JSON 中。如果您想显式查看该值,则必须使用 .serializeNulls()。但在您的情况下,您有一个 float 值(原始数据类型),即使您没有明确设置它,默认情况下也会初始化为 0 。因此,您必须使用 Float 值来定义您的类:

public class MyObj{
String index;
Float spread;
}

因此“spread”字段不会出现在 Json 序列化中,因为它默认初始化为 null

关于java - 如果没有用Gson初始化如何不写float(GsonBuilder()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59269216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com