在.net核心中,我想生成一个json,如下所示,
{
"719A070E-4874-E811-9CCE-02152146006A":{
"userId":"719A070E-4874-E811-9CCE-02152146006A",
"Name":"Joe"
}
}
其中719A070E-4874-E811-9CCE-02152146006A是一个ID,该ID因每个用户而异。序列化时如何定义上述json的类?
关于, 乔
答案 0 :(得分:4)
您可以使用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”,“名称”:“ Joe”}}
为完整起见,使用具体的类看起来像这样。
课程:
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"
}
}
};
答案 1 :(得分:2)
这个问题本身有点令人困惑,但我会尽我所能进行更全面的介绍。 如果您只需要在netcore中生成GUID,则可以使用:
var guid = Guid.NewGuid();
如果在为用户生成Guid之后需要输出整个JSON字符串,则可以执行以下操作:
var guid = Guid.NewGuid();
var user =
new Dictionary<string, object>
{
{
guid.ToString(),
new {Userid = guid, Name = "Joe"}
}
};
Console.WriteLine(JsonConvert.SerializeObject(user, Formatting.Indented));
输出为: