gpt4 book ai didi

java - gson - 数组的长值变成浮点值

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:24 24 4
gpt4 key购买 nike

我需要创建这种格式的 json:

{
"array": [
1482922777223,
0.014221191,
0.014221191,
0.014221191
]
}

数据.类

public class Data {

@SerializedName("array")
@Expose
private List<Float> array = null;
}

为了将对象转换为 JSON 字符串,我使用 gson 库。

List<Float> list = new ArrayList<>();
list.add((float)1482922777223);
list.add(0.014221191);
list.add(0.014221191);
list.add(0.014221191);
Data data = new Data(list);
Gson gson = new Gson();
String json = gson.toJson(data);

结果字符串:

{
"array": [
1.4829219E12, <--- HOW TO GET HERE 1482922777223?
0.014221191,
0.014221191,
0.014221191
]
}

请帮忙!

最佳答案

您需要为Float值注册TypeAdapter

例如:

GsonBuilder gsonBuilder = new GsonBuilder();        
gsonBuilder.registerTypeAdapter(Float.class, new JsonSerializer<Float>() {
@Override
public JsonElement serialize(final Float src, final Type typeOfSrc, final JsonSerializationContext context) {
BigDecimal value = BigDecimal.valueOf(src);
return new JsonPrimitive(value);
}
});

Gson gson = gsonBuilder.create();
String json = gson.toJson(data);

输出:

{
"array": [
1482922777223,
0.014221191,
0.014221191,
0.014221191
]
}

关于java - gson - 数组的长值变成浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41360583/

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