【发布时间】:2018-09-03 12:11:44
【问题描述】:
我有一个Get API,它返回一个JSON。预期格式为:
{
"value1": "123.00",
"value2": "23.00"
}
这些值是对象中的BigDecimal:
public class Result{
BigDecimal value1;
BigDecimal value2;
// getters and setters
}
现在,当发出请求时,我创建Result 对象并将这些值填充为BigDecimal,创建一个列表并返回。我收到的回复是:
{
"value1": 123.00,
"value2": 23.00
}
这些值是正确的,但不是字符串。我怎样才能让它们成为字符串?
我知道我们可以将 BigDecimal 转换为 String,但我只有 BigDecimal 字段的对象,我无法向它填充字符串值。
最后,列表是这样制作的:
List<MyObj> obj = Arrays.stream(myObj).collect(Collectors.toList());
Result result = new Result();
obj.forEach(t -> t.mergeToResult(result)); // mergeToResults does all the population like result.setValue1(new BigDecimal(123.00))
return result;
【问题讨论】:
-
你在使用一些库进行 json 序列化/反序列化吗?
-
你不能创建一个自定义序列化程序来将 BigDecimal 值转换为字符串,同时返回 json 输出吗?
-
不,不使用任何库。
-
@Ankur:问题来了,我该怎么做?
-
你能帮忙补充一下你是如何序列化
result对象的吗?
标签: java json rest get bigdecimal