问题背景:
我从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."
以下显示了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的构造方式