Dart 为什么json结果在restful 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

我请求api并返回一些内容,这是我的结果模型定义:

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);