Dart 为什么json结果在restful api响应中丢失了数据类型
我请求api并返回一些内容,这是我的结果模型定义:Dart 为什么json结果在restful api响应中丢失了数据类型,dart,Dart,我请求api并返回一些内容,这是我的结果模型定义: Response«ArticleResponse» { costTime (integer, optional): 耗时(毫秒) , ipAddress (string, optional): 请求IP地址 , msg (string, optional): 状态描述 , result (ArticleResponse, optional): 业务模型对象 , resultCode (string, optional): 业务处理代码 , st
Response«ArticleResponse» {
costTime (integer, optional): 耗时(毫秒) ,
ipAddress (string, optional): 请求IP地址 ,
msg (string, optional): 状态描述 ,
result (ArticleResponse, optional): 业务模型对象 ,
resultCode (string, optional): 业务处理代码 ,
statusCode (string): 状态码 ,
validationErrors (inline_model_0, optional): 参数校验错误列表
}
ArticleResponse {
author (string, optional),
content (string, optional),
guid (string, optional),
id (integer, optional),
title (string, optional),
userId (integer, optional)
}
但结果json内容丢失了数据类型:
{
"resultCode": "200",
"statusCode": "200",
"msg": "ok",
"result": {
"id": "126",
"userId": "1",
"title": "程序员如何把控自己的职业",
"author": "陈皓",
"guid": "https://coolshell.cn/?p=20977",
"content": ""
},
"validationErrors": null,
"costTime": "0",
"ipAddress": null
}
是否可以保留数据类型?我正在Dart客户端解析结果,它总是告诉我类型字符串不是int的子类型
,如果用户id的结果类型是int,会解决这个问题吗?我该怎么处理这种情况?这是我的Dart解析代码:
if (responseOrigin.statusCode == 200) {
var json = await responseOrigin.transform(utf8.decoder).join();
var itemIds = jsonDecode(json);
Map itemIds1 = itemIds["result"];
String rejson = JsonEncoder().convert(itemIds1);
return _itemsCache[id] = Item.fromJson(rejson);
} else {
throw HackerNewsApiError('Item $id failed to fetch.');
}
这是我使用Java 11的服务器端代码:
/**
* rowser article
*
* @return
*/
@GetMapping("/{id}")
@ApiOperation(value = "article detail", tags = "Article")
Response<ArticleResponse> article(@PathVariable("id") Long id);
/**
*rowser文章
*
*@返回
*/
@GetMapping(“/{id}”)
@ApiOperation(value=“article detail”,tags=“article”)
响应文章(@PathVariable(“id”)长id);