gpt4 book ai didi

java - DecimalFormat 和 Hashmap

转载 作者:行者123 更新时间:2023-12-02 11:16:34 30 4
gpt4 key购买 nike

所以我有一个 double 动态数据,我尝试将其添加到HashMap并使用Gson I' m 将其转换为 Json。有时数据可以是0.00或0.0,那么我只想将0添加到HashMap中。为此,我使用 DecimalFormat 根据需要格式化数据(如上所述),但当我这样做时,它会将值作为 JSON 中的字符串。当我尝试打印它时,它会将其打印为数字,但是当我将其添加到 hashmap 并将其转换为 JSON 时,它是一个字符串。我不知道我做错了什么,任何人都可以帮助我。这是代码。

 HashMap<String, Object> field = new LinkedHashMap<>();
double heading = 0.00;
DecimalFormat decimalFormat = new DecimalFormat("##.##");
field.put("data", decimalFormat.format(heading));
Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().disableHtmlEscaping().create(); // create a GsonBuilder to convert the hashmap to a Json String.
String jsonOutput = gson.toJson(field);
System.out.println( jsonOutput );

字段 HashMap 视为一个大数据集,则输出为

 field{
data: "0"
}

但我希望它是

field{
data: 0
}

我不希望 "" 中出现 0。是否有任何其他替代 DecimalFormat 的方法,或者是否有办法使 HashMap 将其视为数字。

最佳答案

可以直接输入Double。 Gson 知道如何输出它。

field.put("data", heading)

sometimes the data can be 0.00 or 0.0, then I want to add only 0 to HashMap.

我建议 0.000.00 都是相同的数字,您不应该关心最终结果是哪一个JSON。任何 JSON 解析器都能够正确地读回它。

如果将 JSON 解析器(和消费者)写成字符串,则会导致 JSON 解析器(和消费者)崩溃。

关于java - DecimalFormat 和 Hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50232492/

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