【发布时间】:2020-03-15 12:13:35
【问题描述】:
在 C# 中,我有一个平面 Dictionary<string, string>,其中键的形式为 obj1/obj2/obj3,值是直接字符串。现在我想将其序列化为子对象,因此示例值:
var dict = new Dictionary<string, string> { {"foo/bar/baz1", "123" }, {"foo/baz", "456" }, { "foo/abc", "def" } };
结果应该是:
{
"foo": {
"bar": {
"baz1": "123"
},
"baz": "456",
"abc": "def"
}
}
如果输出中“123”和“456”周围的引号可以解释为数字或布尔值,我可以选择删除它们。
我正在使用 Newtonsoft.JSON
【问题讨论】:
-
@PavelAnikhouski 使用 JsonConverter 作为基础,但要找到有关操作键而不是操作值的文档要困难得多...
-
你可以把
foo/bar/baz1这样的属性拆分成部分递归处理,请看我的回答
标签: c# json serialization json.net