gpt4 book ai didi

json - Google 端点为引号中的长数据类型返回 JSON

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:20 25 4
gpt4 key购买 nike

我正在为我的休息服务使用谷歌云端点。我使用 RestyGWT 在 GWT Web 客户端中使用这些数据。

我注意到当我尝试将 JSON 转换为 POJO 时,云端点自动将长数据类型括在双引号中,这导致 RestyGWT 出现异常。

这是我的示例代码。

@Api(name = "test")
public class EndpointAPI {

@ApiMethod(httpMethod = HttpMethod.GET, path = "test")
public Container test() {
Container container = new Container();

container.testLong = (long)3234345;
container.testDate = new Date();
container.testString = "sathya";
container.testDouble = 123.98;
container.testInt = 123;
return container;
}
public class Container {
public long testLong;
public Date testDate;
public String testString;
public double testDouble;
public int testInt;
}

这是云端点作为 JSON 返回的内容。可以看到testLong被序列化为“3234345”而不是3234345。

enter image description here

我有以下问题。(1) 如何删除长值中的双引号?(2) 如何将字符串格式更改为“yyyy-MMM-dd hh:mm:ss”?

问候,沙迪亚

最佳答案

您使用的是什么版本的 restyGWT?你试过1.4快照吗?我认为这是负责在 restygwt 中解析 long 的代码 (1.4),它可能对您有所帮助:

 public static final AbstractJsonEncoderDecoder<Long> LONG = new AbstractJsonEncoderDecoder<Long>() {

public Long decode(JSONValue value) throws DecodingException {
if (value == null || value.isNull() != null) {
return null;
}
return (long) toDouble(value);
}

public JSONValue encode(Long value) throws EncodingException {
return (value == null) ? getNullType() : new JSONNumber(value);
}
};

static public double toDouble(JSONValue value) {
JSONNumber number = value.isNumber();
if (number == null) {
JSONString val = value.isString();
if (val != null){
try {
return Double.parseDouble(val.stringValue());
}
catch(NumberFormatException e){
// just through exception below
}
}
throw new DecodingException("Expected a json number, but was given: " + value);
}
return number.doubleValue();
}

关于json - Google 端点为引号中的长数据类型返回 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942022/

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