问题描述
外部 Web 服务返回给我一个表单的 Json 文件 {"预测":[{"period_end":"2021-01-15T01:00:00.0000000Z","period":"PT30M","ghi90":0,"ghi":0,"ghi10":0},{"period_end":"2021-01-15T01:30:00.0000000Z",{"period_end" :"2021-01-15T02:00:00.0000000Z","ghi10":0}]}
使用 RestRespone 转换 json 元素
RestResponse resp = rest.get(url)
resp.json instanceof JsonElement
如何从 Json 元素变量创建域对象,知道我的包装类是
class ForecastGhi {
static constraints = {
}
private ArrayList<IrradianciaGlobalHorizontal> forecast
ArrayList<IrradianciaGlobalHorizontal> getForecast() {
return forecast
}
void setForecast(ArrayList<IrradianciaGlobalHorizontal> forecast) {
this.forecast = forecast
}
}
和depersist域类是
class IrradianciaGlobalHorizontal {
static constraints = {
}
@JsonProperty("all")
private def period_end
private def period
private def ghi90
private def ghi
private def ghi10
def getGhi() {
this.ghi
}
void setGhi(int ghi) {
this.ghi = ghi
}
def getGhi90() {
this.ghi90
}
void setGhi90(int ghi90) {
this.ghi90 = ghi90
}
def getGhi10() {
this.ghi10
}
void setGhi10(int ghi10) {
this.ghi10 = ghi10
}
def getPeriod_end() {
this.period_end
}
void setPeriod_end(Date period_end) {
this.period_end = period_end
}
def getPeriod() {
this.period
}
void setPeriod(String period) {
this.period = period
}
}
请帮忙;非常感谢
解决方法
这是您的 API 实现的问题;端点更改了域字段名称和/或域名。这会导致将上述数据带回时出现问题。
那个或前端与端点的 API 文档不匹配。
字段名称/域名应与域/资源匹配,除非您要进行一定程度的混淆,然后接受您将需要一个中间层来充当翻译器(即 EDI)。
您希望输出能够被同一端点读取为输入,只需更改请求方法即可。
我的建议(最简单的解决方案):更改原始端点以匹配域/资源字段名称