【发布时间】:2019-05-22 11:38:23
【问题描述】:
在 UWP 中将 API 数据转换为 C# 类时遇到了一个有趣的问题。
我有一个返回图像尺寸的 API,如下所示:
{
"height": "25",
"width": "25"
}
我还有一个类,其属性与json2csharp.com 生成的 JSON 数据相匹配。
public class Image
{
public int height { get; set; }
public Uri url { get; set; }
public int width { get; set; }
}
我正在使用类似这样的方法将 JSON 转换为 C# 类:
dynamic JsonData = JObject.Parse(JsonString);
Image img = JsonData.ToObject<Image>();
但是,如果 API 不知道高度或宽度,它会返回 null 而不是 int,如下所示:
{
"height": null,
"width": "25"
}
这显然会导致抛出异常,特别是这个错误消息:
Newtonsoft.Json.JsonSerializationException:将值 {null} 转换为类型“System.Int32”时出错
有没有办法解决这个问题或处理这种情况?
【问题讨论】:
-
如果可以为您的整数获取 null,则将它们声明为可为 null 的整数
-
让你
int变量可空