将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映射到.net类

确实,这是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,这可能是你在这里想要的。