【问题标题】:How to make json file using an array of strings?如何使用字符串数组制作 json 文件?
【发布时间】:2019-09-30 06:30:18
【问题描述】:

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

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

有什么办法吗?

【问题讨论】:

  • 是的,有很多方法可以做到这一点。
  • 您可以通过在用户序列化和反序列化后联系字符串来实现。
  • 虽然这是可能的,但令我惊讶的是,这在任何地方都需要......虽然关于 stackoverflow 的问题让我很惊讶
  • 从字符串转换为 JSON 的规则并不完全清楚。这是你想要的吗? dotnetfiddle.net/DKaAoH
  • 感谢@dbc 的参考。那行得通!

标签: c# arrays json


【解决方案1】:

您可以使用 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);

该算法的工作原理是反向遍历传入的字符串序列,返回最后一项的字符串本身,并返回一个字典,其中包含由当前项作为键的条目并由先前返回的对象为后续项赋值。随后可以对返回的字典或字符串进行序列化以产生所需的结果。

演示小提琴here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2021-06-26
    • 2017-07-05
    • 1970-01-01
    • 2011-07-24
    • 2017-09-25
    相关资源
    最近更新 更多