c# - 什么是最抽象的 JSON 可序列化 C# 数据结构?
问题描述
鉴于此程序:
using System;
using System.Collections.Generic;
using System.Text.Json;
public class Program
{
public static void Main()
{
var payload = new Payload();
payload.Id = "1001";
payload.PassthroughParameters.Add("Foo", "Bar");
var jsonString = JsonSerializer.Serialize(payload, new JsonSerializerOptions {
WriteIndented = true
});
Console.WriteLine(jsonString);
// OUTPUTS:
// {
// "Id": "1001",
// "PassthroughParameters": {
// "Foo": "Bar"
// }
// }
}
public class Payload
{
public string Id { get; set; }
public IDictionary<string, string> PassthroughParameters { get; set; } = new Dictionary<string, string>();
}
}
我可以IDictionary<string, string>
用序列化为相同 JSON 的最抽象的 C# 数据结构来替换什么?
我想让在 C# 代码中引用数据结构的内容变得更加困难(例如payload.PassthroughParameters["Foo"]
),以避免代码维护的耦合(不是安全问题),同时仍然能够将整个事物传递给内部进程(例如Process(otherParams, payload.PassthroughParameters)
)。
解决方案
推荐阅读
- python - Python 过滤错误。布尔系列键将被重新索引以匹配 DataFrame 索引。
- html - 在 CSS/HTML 中居中图像网格的方法?
- setuid - 尝试使用 checkinstall 或 porg 了解 LD_PRELOAD 和 SUID/SGID
- c# - 使用 MVVM 从 ViewModel 中的窗口资源中选择 DataTemplate
- ruby-on-rails - Factory Bot 与命名空间模型故障的关联
- sql - ORACLE SQL检查表的行号是否为n,然后执行join
- javascript - 在Javascript中独立定位while循环的每个元素?
- git - 使用“git revert”和冲突。这是怎么发生的?
- jquery - 提交前验证字段
- python - 无法在本地使用 PySpark 从 AWS S3 路径读取 Avro 文件