mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix json double
This commit is contained in:
@@ -10,10 +10,8 @@ import cn.hutool.json.test.bean.UserC;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class JSONUtilTest {
|
||||
@@ -126,15 +124,6 @@ public class JSONUtilTest {
|
||||
// Assert.assertEquals("{\"age\":18,\"gender\":\"男\"}", user.getProp());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toBeanTest3() {
|
||||
// 测试数字类型精度丢失的情况
|
||||
String number = "1234.123456789123456";
|
||||
String jsonString = "{\"create\":{\"details\":[{\"price\":" + number + "}]}}";
|
||||
WebCreate create = JSONUtil.toBean(jsonString, WebCreate.class);
|
||||
Assert.assertEquals(number,create.getCreate().getDetails().get(0).getPrice().toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putByPathTest() {
|
||||
JSONObject json = new JSONObject();
|
||||
@@ -172,62 +161,5 @@ public class JSONUtilTest {
|
||||
final JSONObject jsonObject = JSONUtil.parseObj(json);
|
||||
Assert.assertEquals("12.00", jsonObject.getBigDecimal("test").setScale(2).toString());
|
||||
}
|
||||
|
||||
|
||||
class WebCreate {
|
||||
private Create create;
|
||||
@Override
|
||||
public String toString() {
|
||||
return "WebCreate{" +
|
||||
"create=" + create +
|
||||
'}';
|
||||
}
|
||||
|
||||
public void setCreate(Create create) {
|
||||
this.create = create;
|
||||
}
|
||||
|
||||
public Create getCreate() {
|
||||
return create;
|
||||
}
|
||||
}
|
||||
|
||||
class Create {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Create{" +
|
||||
"details=" + details +
|
||||
'}';
|
||||
}
|
||||
|
||||
private List<Detail> details;
|
||||
|
||||
public void setDetails(List<Detail> details) {
|
||||
this.details = details;
|
||||
}
|
||||
|
||||
public List<Detail> getDetails() {
|
||||
return details;
|
||||
}
|
||||
}
|
||||
|
||||
class Detail {
|
||||
private BigDecimal price;
|
||||
|
||||
public void setPrice(BigDecimal price) {
|
||||
this.price = price;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Detail{" +
|
||||
"price=" + price +
|
||||
'}';
|
||||
}
|
||||
|
||||
public BigDecimal getPrice() {
|
||||
return price;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
75
hutool-json/src/test/java/cn/hutool/json/Pr192Test.java
Normal file
75
hutool-json/src/test/java/cn/hutool/json/Pr192Test.java
Normal file
@@ -0,0 +1,75 @@
|
||||
package cn.hutool.json;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
public class Pr192Test {
|
||||
|
||||
@Test
|
||||
public void toBeanTest3() {
|
||||
// 测试数字类型精度丢失的情况
|
||||
String number = "1234.123456789123456";
|
||||
String jsonString = "{\"create\":{\"details\":[{\"price\":" + number + "}]}}";
|
||||
WebCreate create = JSONUtil.toBean(jsonString, WebCreate.class);
|
||||
Assert.assertEquals(number,create.getCreate().getDetails().get(0).getPrice().toString());
|
||||
}
|
||||
|
||||
static class WebCreate {
|
||||
private Create create;
|
||||
@Override
|
||||
public String toString() {
|
||||
return "WebCreate{" +
|
||||
"create=" + create +
|
||||
'}';
|
||||
}
|
||||
|
||||
public void setCreate(Create create) {
|
||||
this.create = create;
|
||||
}
|
||||
|
||||
public Create getCreate() {
|
||||
return create;
|
||||
}
|
||||
}
|
||||
|
||||
static class Create {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Create{" +
|
||||
"details=" + details +
|
||||
'}';
|
||||
}
|
||||
|
||||
private List<Detail> details;
|
||||
|
||||
public void setDetails(List<Detail> details) {
|
||||
this.details = details;
|
||||
}
|
||||
|
||||
public List<Detail> getDetails() {
|
||||
return details;
|
||||
}
|
||||
}
|
||||
|
||||
static class Detail {
|
||||
private BigDecimal price;
|
||||
|
||||
public void setPrice(BigDecimal price) {
|
||||
this.price = price;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Detail{" +
|
||||
"price=" + price +
|
||||
'}';
|
||||
}
|
||||
|
||||
public BigDecimal getPrice() {
|
||||
return price;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user