我有一个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
属性中没有找到图像会发生什么,它会返回一个打破映射的数组。这是有道理的。我不知道如何处理这个,请建议
答案 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
,这可能就是您想要的。