我有一个字符串数组。我想从中创建一个 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 关注
- 98 浏览
添加回答
举报
0/150
提交
取消