kud*_*ger 5 c# json.net deserialization
我有以下 json
"PayloadData": {
"CustomFields": ['test','test2'],
"SampleNumber":"123"
}
Run Code Online (Sandbox Code Playgroud)
我正在使用下面的代码来反序列化 json。
Message message = JsonConvert.DeserializeObject<Message>(payloadData);
Run Code Online (Sandbox Code Playgroud)
这是我在Message课堂上的财产
/// <summary>
/// Gets or sets CustomFields
/// </summary>
[Required]
[DataMember(Name = "CustomFields")]
public List<string> CustomFields{ get; set; }
Run Code Online (Sandbox Code Playgroud)
但是,我得到以下错误。
“无法映射属性 'Message.CustomFields',因为它的类型是 'string[]',它不是受支持的原始类型或有效的实体类型。要么显式映射此属性,要么使用 '[NotMapped ]' 属性或通过在 'OnModelCreating' 中使用 'EntityTypeBuilder.Ignore'。”
您可以尝试使用此在线 json 到 C# 类生成器来获取反序列化 json 字符串所需的 POCO 结构。
然后只需将其映射到您的 EF 类(例如使用 AutoMapper):
所以对于这个 JSON:
{
"CustomFields": ['test','test2'],
"SampleNumber":"123"
}
Run Code Online (Sandbox Code Playgroud)
这是生成的 POCO:
public class RootObject
{
public List<string> CustomFields { get; set; }
public string SampleNumber { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果这是你实际的 JSON:
{ "PayloadData":
{
"CustomFields": ['test','test2'],
"SampleNumber":"123"
}
}
Run Code Online (Sandbox Code Playgroud)
这就是你的 POCO 的样子:
public class PayloadData
{
public List<string> CustomFields { get; set; }
public string SampleNumber { get; set; }
}
public class RootObject
{
public PayloadData PayloadData { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9731 次 |
| 最近记录: |