c# - 在 Json 中生成动态密钥
问题描述
在.net core中,我想生成一个json,如下所示,
{
"719A070E-4874-E811-9CCE-02152146006A":{
"userId":"719A070E-4874-E811-9CCE-02152146006A",
"Name":"Joe"
}
}
其中 719A070E-4874-E811-9CCE-02152146006A 是一个因每个用户而异的 ID。序列化时如何将类定义为上述 json?
问候,乔
解决方案
您可以使用 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"
}
}
};
推荐阅读
- python-3.x - 在 ipython 中设置别名
- laravel - 如何通过 2 表 FK 在刀片上显示数据
- delphi - 使用 Indy OpenSSL 和 MySql 时的访问冲突
- c# - 除非在 xaml.cs 中设置,否则 XAML 可见性绑定不起作用
- r - 是什么导致使用 rvest 包抓取表格网页有时会失败?
- javascript - 在运行时设置相机位置与 navmesh 冲突
- windows - iisnode msi 文件未安装在首选位置
- wpf - 当我使用 DataTrigger 设置 FocusElement 时,它不会改变焦点
- c# - Unity Container 进行依赖注入抛出异常,但 Web API 仍然有效
- javascript - Firebase Pubsub 函数不调用