将json映射到.net类
本文关键字:net 映射 json | 更新日期: 2023-09-27 18:13:25
我有一个json提要,可以在这里看到。
我通过定义每个结构正确地将整个json映射到类中。只是被困在一个地方。如果你看到json并搜索属性headliners
,它是一个数组,它有一个属性image
,它是一个对象。所以我创建了一个类来映射
public class HeadeLiners
{
public Image Image { get; set; }
}
public class Image
{
public ImageSize Jumbo{ get; set; }
}
public class ImageSize
{
public string Path{ get; set; }
public int Width{ get; set; }
public int Height{ get; set; }
}
但是如果在响应headliners
属性中没有找到图像,它会返回一个打破映射的数组。这是有道理的。我不知道如何处理这个问题,请建议
确实,这是JSON的一个奇怪的用法。
你可以这样做:
var settings = new JsonSerializerSettings();
settings.Error += (obj, errorArgs) =>
{
if ("image".Equals(errorArgs.ErrorContext.Member))
{
errorArgs.ErrorContext.Handled = true;
}
};
var test = JsonConvert.DeserializeObject<Test>(json, settings);
通过处理Error
事件,您可以选择性地忽略这些类型的错误。如果你在这个特定的位置忽略这个错误(只检查成员名可能会这样做),你的Image
属性仍然是null
,这可能是你在这里想要的。