C# 如何使用字符串数组生成json文件?

C# 如何使用字符串数组生成json文件?,c#,arrays,json,json.net,javascriptserializer,C#,Arrays,Json,Json.net,Javascriptserializer,我有一个字符串数组。我想从中创建一个JSON文件,使用字符串作为属性名和最终值,将其映射到嵌套对象的层次结构。例如,如果数组包含{“A”、“B”、“C”、“D”},那么生成的JSON文件应该如下所示 { "A": { "B": { "C": "D" } } } 有什么方法可以做到这一点吗?您可以使用LINQ和JSON序列化程序(或)从字符串数组生成一组嵌套的JSON对象,如下所示: var input = new[]{"A","B","C","D"

我有一个字符串数组。我想从中创建一个JSON文件,使用字符串作为属性名和最终值,将其映射到嵌套对象的层次结构。例如,如果数组包含
{“A”、“B”、“C”、“D”}
,那么生成的JSON文件应该如下所示

{
  "A": {
    "B": {
      "C": "D"
       }
    }
}

有什么方法可以做到这一点吗?

您可以使用LINQ和JSON序列化程序(或)从字符串数组生成一组嵌套的JSON对象,如下所示:

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);
var input=new[]{“A”、“B”、“C”、“D”};
var数据=输入
.Reverse()
.Aggregate((object)null,(a,s)=>a==null?(object)s:newdictionary{{s,a});
var json=JsonConvert.serialized对象(数据、格式、缩进);
该算法的工作原理是反向遍历传入的字符串序列,返回最后一个项的字符串本身,并返回一个字典,其中包含由当前项键入的条目,并由先前返回的对象为后续项赋值。随后可以序列化返回的字典或字符串以生成所需的结果


演示小提琴。

您可以使用LINQ和JSON序列化程序(或)从字符串数组生成一组嵌套的JSON对象,如下所示:

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);
var input=new[]{“A”、“B”、“C”、“D”};
var数据=输入
.Reverse()
.Aggregate((object)null,(a,s)=>a==null?(object)s:newdictionary{{s,a});
var json=JsonConvert.serialized对象(数据、格式、缩进);
该算法的工作原理是反向遍历传入的字符串序列,返回最后一个项的字符串本身,并返回一个字典,其中包含由当前项键入的条目,并由先前返回的对象为后续项赋值。随后可以序列化返回的字典或字符串以生成所需的结果


演示小提琴。

是的,有很多方法可以做到这一点。在用户序列化和反序列化后,您可以通过联系字符串来实现。虽然这是可能的,但让我惊讶的是,在任何地方都需要它。。。尽管有关stackoverflow的问题让我大吃一惊,但将字符串转换为JSON的规则并不完全清楚。这是你想要的吗?谢谢@dbc的推荐。成功了!!是的,有很多方法可以做到这一点。你可以在用户序列化和反序列化后联系string来实现这一点。虽然这是可能的,但让我惊讶的是,这在任何地方都是需要的。。。尽管有关stackoverflow的问题让我大吃一惊,但将字符串转换为JSON的规则并不完全清楚。这是你想要的吗?谢谢@dbc的推荐。成功了!!