Newtonsoft - 将json映射到.NET类

时间:2014-07-18 14:19:15

标签: c# json.net

我有一个json feed可以看到here

我通过定义每个结构将enitre 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属性中没有找到图像会发生什么,它会返回一个打破映射的数组。这是有道理的。我不知道如何处理这个,请建议

1 个答案:

答案 0 :(得分:1)

实际上,这是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,这可能就是您想要的。

相关问题