Итак, у меня есть динамические данные, которые double , и я пытаюсь добавить их к HashMap и использую Gson Я конвертирую их в 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 или есть способ заставить хэш-карту принять ее за число.