У нас есть набор результатов, который возвращается как список с родительским, дочерним и несколькими столбцами. Мы хотим преобразовать это в Json с родительским преобразованием в Id и Child в соответствующие узлы. пример нижеПреобразование ArrayList в желаемый формат Json
возвращаемый результат:
parent | Child ab | cd ab | ef ab | gh cd | ij cd | kl ef | mn ef | op gh | qr ij | st and so on
ожидается Json:
{ "id": "ab", "label": "ab", "nodes": [ { "id": "cd", "label": "cd", "nodes": [ { "id": "ij", "label": "ij", "nodes": { "id": "st", "label": "st" } }, { "id": "kl", "label": "kl" } ] }, { "id": "ef", "label": "ef", "nodes": [ { "id": "mn", "label": "mn" }, { "id": "op", "label": "op" } ] }, { "id": "gh", "label": "gh", "nodes": { "id": "qr", "label": "qr" } } ] }
Надежда Вопрос ясно, пожалуйста, дайте мне знать, как C# или JS утилита, которая помогает мне в делая это.
Заранее спасибо
Edited
После некоторых исследований,
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, возможно, используя Newtonsoft.Json - это все! – duDE
@duDE. Спасибо, но я новичок в C#, нахожу трудности в разборе и получении ожидаемого Json. –
Отредактировал мой вопрос с исследованиями. –