【发布时间】:2020-02-25 03:04:27
【问题描述】:
我有以下json 被发送到 api
{
"Id":22,
"UserId":22,
"Payload":{
"Field":"some payload value"
...more unknown field/values go here
},
"ContextTypeId":1,
"EventTypeId":1,
"SessionId":1
}
我想将其映射到以下内容:
public class CreateTrackItem : IRequest<int>
{
public int Id { get; set; }
public int UserId { get; set; }
public string Payload { get; set; }
public int ContextTypeId { get; set; }
public int SessionId { get; set; }
public int EventTypeId { get; set; }
}
当映射Payload 属性失败时,它无法将json 映射到字符串,我只是希望Payload 成为json 的string 版本(将进入jsonb 中的字段postgres)
我正在使用 .NET Core 3.0,如果可能,我更喜欢使用内置的 System.Text.Json,然后再切换到 Newtonsoft。
【问题讨论】:
-
Payload必须是class对象,propertyField。"Payload":{ "Field":"some payload value" },这是一个复杂的对象,不是字符串。 -
@RyanWilson 因为负载结构未知,除了它将是有效的 json 之外,它不可能构造一个类,这就是为什么该属性被设置为一个字符串,它将接受任何 json被扔了
-
那你要么需要写一个自定义的
JSON Converter,要么尝试使用JToken类型,请看这篇文章(stackoverflow.com/questions/29980580/…)
标签: json asp.net-core system.text.json