【发布时间】:2021-08-05 11:09:03
【问题描述】:
我正在处理 Json 文件并向数据库添加值,但是有没有办法动态构建 Payload 以仅包含 Json 中显示的列?
code payloadMessageContext.Update(new Payload {
Id = 1,
column1 = Attributes.Where(x => x.Key == "column1")?.FirstOrDefault().Value.ToString(),
column2 = Attributes.Where(x => x.Key == "column2")?.FirstOrDefault().Value.ToString(),
column3 = Attributes.Where(x => x.Key == "column3")?.FirstOrDefault().Value.ToString(),
column4 = Attributes.Where(x => x.Key == "column4")?.FirstOrDefault().Value.ToString(),
});
await payloadMessageContext.SaveChangesAsync();
我使用的 Json 文件是动态的,例如,如果我对系统中的所有 4 列进行了更新,那么它将生成我可以用于我的 Paylod 的格式,但如果我对 column1 进行了更新,则 Json 包含只有 column1 的 Key,然后它不能用于我的 Paylod,因为代码将为 column2、column3 和 column4 抛出空异常
【问题讨论】:
-
Where永远不会返回null所以Attributes.Where(...)?.是没用的。另一方面FirstOrDefault可能返回null,因此你必须写FirstOrDefault()?. -
感谢问题更多的是如果 Key== "column2" 在 json 中不存在,如何从 Paylod 跳过例如 column2
-
请选择一个 C# 版本。
-
Attributes长什么样子? -
什么类型的列表?
标签: c# json c#-4.0 json-deserialization