gpt4 book ai didi

java - 如何从json对象获取十进制格式值

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

我正在尝试从 JSONObject 获取值(value)。这是 JSONObject 中的值。

{name: "alice", amount: 2.3}
// name (string), amount (decimal)

我对如何从 JSONObject 获取十进制值感到困惑。这是我的代码。我的代码正确吗?我认为 float 和小数是不同的。我试图找到它,但没有找到。

JSONObject data = new JSONObject();
float myFloatValue = BigDecimal.valueOf(data.getDouble("amount")).floatValue();

……

最佳答案

在 Java 中,当您键入十进制数 3.6 时,它会被解释为 double 。由于浮点型的精度不如 double 型,因此无法隐式执行转换。

如果你想创建一个 float ,你应该以 f 结尾你的数字(即:3.6f)。

JSONObject data = new JSONObject(//your jsonObject);
float myFloatValue=(float)data.getDouble("amount");

这很好用

创建一个带有setter和getter的POJO类(MyData)。这是更好的方法

public class MyData{
private String name;
private Double amount;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getAmount() {
return amount;
}
public void setAmount(Double amount) {
this.amount = amount;
}
}

在您的方法中写入此 block :

ObjectMapper mapper = new ObjectMapper();
JSONObject data = new JSONObject(//your jsonObject);
MyData myData = mapper.readValue(data.toString(),MyData.class);
float myFloatValue=(float)myData.getAmount();

现在您可以在 myFloatValue 中拥有浮点值。

关于java - 如何从json对象获取十进制格式值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49069147/

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