c# - 具有属性名称和值的映射对象

标签 c#

我有课

public class Foo 
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }    
}

我想将对象转换为通用对象

{
    "properties": {
        "id" : "1234",
        "name": "John Doe",
        "email" : "john.doe@mail.com"
    }
}

我想将类实例转换为属性根据类动态变化的结构。这可以用 Automapper 实现吗?

最佳答案

似乎您想序列化/反序列化到 JSON 或从 JSON 反序列化。这种情况可以引用Newtonsoft.Json并使用不依赖于任何特定类的 JsonConvert.SerializeObject/JsonConvert.DeserializeObject 通用方法:

反序列化(从字符串到类实例):

var foo = JsonConvert.DeserializeObject<Foo>(jsonString);

序列化(从类实例到字符串):

var stringValue = JsonConvert.SerializeObject(foo)

多一点(映射)

您可能还想用一些属性来装饰您的类以指定映射:

[DataContract]
public class Foo 
{
    [DataMember(Name = "id")]
    public string Id {get;set;}

    [DataMember(Name = "name")]
    public string Name {get;set;}

    [DataMember(Name = "email")]
    public string Email {get;set;}    
}

关于c# - 具有属性名称和值的映射对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31847424/

相关文章:

c# - 检查数据库记录映射中的空值

c# - Linq - 前瞻迭代

c# - 依赖注入(inject)和开发生产力

c# - Entity Framework Search for Enum 拉回所有数据

C# 到 VB.net 项目转换

c# - Entity Framework 中的 SaveChanges 与 SaveChangesAsync

c# - 从数据库创建按钮 - 发生 System.NullReferenceException

c# - 不同领域非常相似的 Controller 的最佳实践

c# - 动态加载程序集并手动强制路径以获取引用的程序集

c# - 为我自己的类型在 byte[] 上实现 Linq 查询