c# - 在模型字段上序列化和反序列化 JSON
问题描述
我的模型如下所示:
public class Person
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; }
public string Job { get; set; }
[Column(TypeName = "jsonb")]
public JObject Address { get; set; }
}
如您所见,Address
是一个jsonb列。现在,客户端必须将其内容转换为 JSON 以供服务器接受,并在从服务器检索 JSON 内容时对其进行解析。让服务器处理这项工作的优雅方法是什么?
解决方案
我发现的最好方法是在我的DbContext
modelBuilder.Entity<Person>()
.Property(e => e.Address)
.HasConversion(
v => JsonConvert.SerializeObject(v,
new JsonSerializerSettings {ContractResolver = new CamelCasePropertyNamesContractResolver()}),
v => JsonConvert.DeserializeObject<JObject>(v,
new JsonSerializerSettings {ContractResolver = new CamelCasePropertyNamesContractResolver()})
);
推荐阅读
- javascript - Ant 设计 - 折叠面板内的 Object.map 不起作用
- angular11 - 不能绑定到“dismissible”,因为它不是“ngb-alert”的已知属性
- reactjs - 反应 js 内联 css 变量
- jquery - 如何在 asp.net 核心中使用 jquery 验证 ckeditor?
- core-data - 我应该为“出口合规”选择什么?
- javascript - 如何在chart.js中从中心推动极区切片
- python - 使用 Dash 上传和创建表格
- sql - 仅获取 Laravel 中连接表的最后更新行
- python-3.x - 为什么 PyQt5 向我显示我的第一个文件对话框而不是我的第二个?
- vue.js - 如何在 Vuelidate 中使用 v-if 访问对象的键