错误通过Newtonsoft

时间:2015-10-18 20:17:44

标签: c# json json.net

问题背景:

我从WebApi端点接收JSON有效负载,从这里我通过使用Newtonsoft将数据映射到C#模型结构。 C#类是使用json2csharp.com

生成的

问题:

以下JSON(在Visual Studio中的JSON查看器中查看)在尝试映射到C#类上的等效属性时导致Feature元素的ItemAttributes属性出错:

Feature属性显示为:

"Feature: Polish Release, cover may contain Polish text/markings. The disk DOES NOT have English audio and subtitles."

enter image description here

以下显示了json2csharp.com中生成的C#ItemAttributes类,其中包含所需的'功能'属性:

public class ItemAttributes
{
    public string Brand { get; set; }
    public string Department { get; set; }

    /* Feature string list*/
    public List<string> Feature { get; set; }

    public string Label { get; set; }
    public string Manufacturer { get; set; }
    public string NumberOfItems { get; set; }
    public string PackageQuantity { get; set; }
    public string ProductGroup { get; set; }
    public string ProductTypeName { get; set; }
    public string Publisher { get; set; }
    public string Studio { get; set; }
    public string Title { get; set; }
    public string Binding { get; set; }
    public string Color { get; set; }
    public PackageDimensions PackageDimensions { get; set; }
    public string Size { get; set; }
    public string IsAdultProduct { get; set; }
    public string MPN { get; set; }
    public string PartNumber { get; set; }
    public string SKU { get; set; }
}

正在收到的错误:

An exception of type 'Newtonsoft.Json.JsonSerializationException' occurred  in Newtonsoft.Json.dll but was not handled in user code

Additional information: Error converting value "Polish Release, cover may   contain Polish text/markings. The disk DOES NOT have English audio and subtitles." to type 'System.Collections.Generic.List`1[System.String]'. Path 'Items.Item[2].ItemAttributes.Feature', line 1, position 11935.

如果有人能够理解为什么我在将JSON Feature属性映射到C#等效项时遇到问题会很棒。

---------------------------的修改 ------------ ---------------

感谢Ivaylos的回答我现在可以看到问题是字符串Feature属性试图映射到C#equivilant中的字符串列表的值。

我现在面临的问题是JSON有时会将Feature属性作为字符串列表返回,有时它只是一个字符串。

,理想情况下,我需要两个Feature个属性,一个字符串:

public string Property

和一个清单:

public List<string> Property

显然,我无法在Feature类中设置两个ItemAttribute属性。

我怎样才能克服这一点?我有 没有 控制JSON的构造方式

0 个答案:

没有答案