【发布时间】:2019-08-02 17:51:49
【问题描述】:
如何将点表示法转换为 json
点符号可以有任意深度
所有数据都是这样的:
Dictionary<string, string> data = new Dictionary<string, string>
{
{"Company.Website", "Hjemmeside"},
{"Company.TextHeaderPlaceholder", "Firmanavn"},
{"Company.User.Manager.Repositories.CreateAsync.ArgumentNullException.InvalidCompanyId", "firma id fejl"},
{"BookingSettings.HelpText", "Hjælpe tekst på webshop"},
{"BookingSettings.OnGoingOrderValidation.Text", "Bestillings validering i gang"},
{"BookingSettings.OnGoingOrderValidation.Created", "Oprettet"},
{"BookingSettings.Url", "Kundelink til booking"}
};
Json 结果应该是:
{
"Company": {
"Website": "Hjemmeside",
"TextHeaderPlaceholder": "Firmanavn",
"Users": {
"Managers": {
"Repositories": {
"CreateAsync": {
"ArgumentNullException": {
"InvalidCompanyId": "Can not create company user with out a company!"
}
}
}
}
}
},
"BookingSettings": {
"HelpText": "Hjælpe tekst på webshop",
"OnGoingOrderValidation": {
"Text": "Bestillings validering i gang",
"Created": "Oprettet"
},
"URL": "Kundelink til booking"
}
}
如何以简单的方式做到这一点?
【问题讨论】:
-
到目前为止您尝试了什么?
string.Split呢?而且它看起来不像Dictionary<string, string>... 而不是Dictionary<string, object>其中object可以是string或Dictionary<string, object> -
在我看来只是一个类实例,其成员具有特定值。您是否尝试过简单地将
Company对象序列化为 JSON? -
尝试澄清我正在尝试做的事情,我正在使用 Home.Somthing 只是递归任何深度
-
它可以用 1 行 ... 完成,当然“BookingSettings.Url”不存在......
-
@Selvin 我写了一个solution,就像你建议的那样。自从我做了魔术 LINQ-to-JSON(使用 Newtonsoft.Json)以来已经有一段时间了,但这可能是可以使用的。否则自定义
JsonConverter。
标签: c# json converters