【发布时间】:2017-10-11 22:10:47
【问题描述】:
我正在使用数据库来保存 Json 结构和值。使用 Testdata 结构作为字典看起来类似于:
Dictionary<string, string> input = new Dictionary<string, string>();
input.Add("application.shortName", "TestShortName");
input.Add("application.longName", "TestLongName");
input.Add("application.description", "TestDescription");
input.Add("application.deepNode.evenDeeperNode", "Values so deep, you can see Adelle rolling");
input.Add("common.yes", "YesTest");
input.Add("common.no", "NoTest");
input.Add("common.save", "SaveTest");
input.Add("common.pager.pagesLenghtBefore", "LengthTestDeepNode");
我从不知道来自数据库的名称,因此它可以是键的任何名称以及由点表示的任何深度,例如:“key1.key2.keyN”。 现在我想将从数据库中获得的每个键和值序列化为 Json。使用上面的 Testdata,它看起来像这样:
{
"application": {
"shortName": "TestShortName",
"longName": "TestLongName",
"description": "TestDescription",
"deepNode": {
"evenDeeperNode": "Values so deep, you can see Adelle rolling"
},
"common": {
"yes": "YesTest",
"no": "NoTest",
"save": "SaveTest",
"pager": {
"pagesLengthBefore": "LengthTestDeepNode"
}
}
}
}
我正在使用 JSON.NET,但我几乎没有触及表面,不知道是否有针对此的方法。我知道我可以将字典转换为 Json,但由于我的键的深度未知,这不可能直接实现。我试图想出一个循环来拆分键并将值添加到最后一个拆分的节点,尽管我从来没有真正编写过类似的程序。
我希望这似乎不是一个不恰当的问题,但我确实需要帮助。我很欣赏任何正确方向的提示。提前致谢
【问题讨论】:
-
您是否尝试过使用 Dictionary
代替?这样,您可以嵌套 input["application"] = new Dictionary () 等,在对象图中更准确地表示 JSON 结构。 -
这听起来像我想走的路。我读过类似的东西,但还没有找到解决方案。我会朝这个方向努力。