首页 > 解决方案 > 在模型字段上序列化和反序列化 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 内容时对其进行解析。让服务器处理这项工作的优雅方法是什么?

标签: c#jsonpostgresql.net-coreentity-framework-core

解决方案


我发现的最好方法是在我的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()})
            );

推荐阅读