我有一個字符串數組。我想從中創建一個 JSON 文件,使用字符串作為屬性名稱和最終值將其映射到嵌套對象的層次結構。例如,如果數組包含{"A", "B", "C", "D"},則生成的 JSON 文件應如下所示{ "A": { "B": { "C": "D" } }}有什么辦法可以做到這一點嗎?
1 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
您可以使用 LINQ 和 JSON 序列化程序從字符串數組生成一組嵌套的 JSON 對象(json.net或者javascript序列化器) 如下:
var input = new[]{"A","B","C","D"};
var data = input
? ? .Reverse()
? ? .Aggregate((object)null, (a, s) => a == null ? (object)s : new Dictionary<string, object>{ { s, a } });
var json = JsonConvert.SerializeObject(data, Formatting.Indented);
該算法的工作原理是反向遍歷傳入的字符串序列,返回最后一項的字符串本身,并返回一個字典,其中的條目由當前項作為鍵,并由先前返回的后續項的對象進行賦值。隨后可以對返回的字典或字符串進行序列化以產生所需的結果。
演示小提琴在這里。
- 1 回答
- 0 關注
- 229 瀏覽
舉報
0/150
提交
取消