javascript - 将 ArrayList 转换为所需的 Json 格式

标签 javascript c# json

我们的结果集以包含父项、子项和其他一些列的列表形式返回。我们希望将其转换为 Json,其中父节点转换为 Id,子节点转换为对应节点。 请参阅下面的示例

返回结果:

父| child ab |光盘 ab |埃夫 ab | GH 光盘| ij 光盘|吉隆坡 EF |锰 EF |操作 gh | qr ij |英石 等等

预期 Json:

{ “id”:“ab”, “标签”:“ab”, “节点”:[ { “id”:“光盘”, “标签”:“CD”, “节点”:[ { “id”:“ij”, “标签”:“ij”, “节点”:{ “id”:“st”, “标签”:“st” } }, { “id”:“kl”, “标签”:“KL” } ] }, { “id”:“ef”, “标签”:“ef”, “节点”:[ { “id”:“mn”, “标签”:“mn” }, { “id”:“操作”, “标签”:“操作” } ] }, { “id”:“gh”, “标签”:“gh”, “节点”:{ “id”:“qr”, “标签”:“qr” } } ] }

希望问题很清楚,请告诉我可以帮助我完成此操作的 C# 或 js 实用程序。

提前致谢

已编辑

经过一番研究,

public class TreeNode
{
public TreeNode()
{
    nodes = List<TreeNode>();   
}

String id {get; set;}
List<TreeNode> nodes {get; set;}
 }

方法

public List<TreeNode> FlatToHierarchy(List<TreeNode> list)
{
        var lookup = new Dictionary<string, TreeNode>();
        // actual nested collection to return
        List<TreeNode> nested = new List<TreeNode>();

        foreach (TreeNode item in list)
        {
            if (lookup.ContainsKey(item.Parent))
            {
                lookup[item.Parent].Children.Add(item);
            }
            else
            {
                nested.Add(item);
            }
            lookup.Add(item.Part, item);
        }

        return nested;
 }

但是这会返回,

ab
|
--cd
  |
  --ij
--cd
 |
  --kl
ab
|
--ef
  |
  --mn
--ef
  |
   --op

等等,这不是预期的数据。

更新了问题,以便它可能有助于获取答案

提前致谢。

最佳答案

请使用 JSON.Net 或其他 json 解析器。

关于javascript - 将 ArrayList 转换为所需的 Json 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406261/

相关文章:

javascript - 通过 PHP 将 JSON 输出转换为 HTML 表?

javascript - 使用 AngularJS 进行逻辑分离的最佳方式是什么

javascript - Antenna House 6.6 是否支持 HTML DOM classList 切换?

c# - 有没有办法在不转换字符串的情况下在 C# 中比较日期 "strings"?

c# - 如何强制我的 gRPC 客户端打开到服务器的多个连接?

php - 如何在 javascript 中访问多维 PHP 数组作为 json 编码的变体?

javascript - 使用纯 javascript 创建下载提示

javascript - 从可点击的 Google map 叠加层传播鼠标事件

c# - 2000 个工作线程,只有很少的实际线程

json - 如何将 JSON 字符串解析为结构