You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行天气应用遇序列化错误:无法将浮点值解析为Int32类型

解决OpenWeatherMap JSON反序列化的Int32解析错误

嘿,这个问题我太熟了!咱们先把错误信息拆明白:无法将值'-3.23'解析为Int32类型——核心原因就是你的C#模型类WeatherApp.RootObject1里,某个字段被定义成了整数类型(int),但OpenWeatherMap返回的JSON里对应字段是带小数的浮点数(比如-3.23),反序列化器自然转不动啦。

下面是具体的解决步骤:

1. 定位问题字段

先手动查看API返回的JSON结构(直接在浏览器打开你提供的URL就行),找到值为-3.23的字段。大概率是温度、体感温度这类数值字段,比如main对象下的temp、feels_like,或者其他带小数的气象指标。

2. 修正模型类的字段类型

找到RootObject1类里对应那个字段的定义,把int改成double或者float。举个例子:

  • 错误的字段定义:
public class Main
{
    // 这里用了int,但API返回的是浮点数
    public int temp { get; set; }
    public int feels_like { get; set; }
}
  • 修正后的字段定义:
public class Main
{
    public double temp { get; set; }
    public double feels_like { get; set; }
}

3. 全面检查数值字段

别只改一个就完事!建议把模型里所有和数值相关的字段都过一遍,比如气压(pressure)、湿度(humidity)、风速(speed)这些,确保它们的类型和API返回的JSON值完全匹配——有些字段是整数,有些是浮点数,要对应准确。

额外小技巧

如果你是用JSON转C#工具自动生成的模型,记得在生成时留意数值类型的选项,避免工具默认把所有数值都设成int;或者生成后手动核对一遍每个字段的类型。

内容的提问来源于stack exchange,提问作者Kevin Moran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:55:15