【发布时间】:2021-01-20 06:17:14
【问题描述】:
假设我有一个接受以下 JSON 的控制器:
{
"propA": "val1",
"propB": {
"propC": "val2",
"propD": "val3"
},
"propE": "val4"
}
不使用自定义JsonConverter,有没有办法将此JSON反序列化为一个类,例如:
public record Payload(
string PropA,
string PropC,
string PropD,
string PropE
);
JSON 对象“PropB”应该被解包,两个子属性“PropC”和“PropD”直接映射到类的对应属性。
我正在使用来自System.Text 的内置 JSON 类。
【问题讨论】:
-
“不使用自定义序列化器”定义“自定义序列化器”
-
没有自定义 de-serializer,你的意思是?不。但如果我可能会问:为什么你甚至接受这种格式的 JSON?
-
@00110001,我的意思是自定义
JsonConverter。 -
@metacubed 我认为自定义反序列化器可能是 的方式。毕竟,这不正是他们的用例吗?创建一个到底有什么问题? (另外,当这完全不可能时,创建一个中间 DTO 并使用自动映射器)
-
"propE", "valE"- 打错了吧?
标签: c# json asp.net-core .net-5