首页 > 解决方案 > 在 Json 中生成动态密钥

问题描述

在.net core中,我想生成一个json,如下所示,

{
    "719A070E-4874-E811-9CCE-02152146006A":{
             "userId":"719A070E-4874-E811-9CCE-02152146006A",
              "Name":"Joe"
         }
}

其中 719A070E-4874-E811-9CCE-02152146006A 是一个因每个用户而异的 ID。序列化时如何将类定义为上述 json?

问候,乔

标签: c#.net.net-core

解决方案


您可以使用 a 来执行此操作Dictionary,这些键用作 JSON 键。例如,这对值使用匿名类型,但您可能应该使用具体类:

var data = new Dictionary<string, object>
{
    {
        "719A070E-4874-E811-9CCE-02152146006A",  
        new { userId = "719A070E-4874-E811-9CCE-02152146006A", Name = "Joe" }
    }
};

var json = JsonConvert.SerializeObject(data);
Console.WriteLine(json);

输出是:

{"719A070E-4874-E811-9CCE-02152146006A":{"userId":"719A070E-4874-E811-9CCE-02152146006A","姓名":"乔"}}

为了完整起见,使用一个具体的类,它看起来像这样。

班上:

public class User
{
    public Guid userId { get; set; }
    public string Name { get; set; }
}

Dictionary:_

var data = new Dictionary<string, object>
{
    {
        "719A070E-4874-E811-9CCE-02152146006A",
        new User 
        { 
            userId = Guid.Parse("719A070E-4874-E811-9CCE-02152146006A"), 
            Name = "Joe" 
        }
    }
};

推荐阅读