我在json
以下
"PayloadData": {
"CustomFields": ['test','test2'],
"SampleNumber":"123"
}
我正在使用以下代码反序列化json。
Message message = JsonConvert.DeserializeObject<Message>(payloadData);
这是我在Message
类中的财产
/// <summary>
/// Gets or sets CustomFields
/// </summary>
[Required]
[DataMember(Name = "CustomFields")]
public List<string> CustomFields{ get; set; }
但是,我遇到了以下错误。
“无法映射属性'Message.CustomFields',因为它的类型为'string []',它不是受支持的原始类型或有效的实体类型。要么显式映射此属性,要么使用'[NotMapped]'属性或通过在'OnModelCreating'中使用'EntityTypeBuilder.Ignore'。”
答案 0 :(得分:1)
您可以尝试使用此online json to C# class generator来获取反序列化json字符串所需的POCO的结构。
然后只需将其映射到您的EF类(例如使用AutoMapper):
因此,此JSON:
{
"CustomFields": ['test','test2'],
"SampleNumber":"123"
}
这是生成的POCO:
public class RootObject
{
public List<string> CustomFields { get; set; }
public string SampleNumber { get; set; }
}
如果这是您的实际JSON:
{ "PayloadData":
{
"CustomFields": ['test','test2'],
"SampleNumber":"123"
}
}
您的POCO应该是这样的:
public class PayloadData
{
public List<string> CustomFields { get; set; }
public string SampleNumber { get; set; }
}
public class RootObject
{
public PayloadData PayloadData { get; set; }
}