I have a json file with Categories of products.
Every entry of the json has :
- Id : a unique category id
- IdParent : the id of the parent node
- ...Name & ImageUrl
Sample Date:
[  
   {  
      "ImageUrl":"1-home_default/1",
      "Id":1,
      "IdParent":0,
      "Name":"Root"
   },
   {  
      "ImageUrl":"2-home_default/2",
      "Id":2,
      "IdParent":1,
      "Name":"Home"
   },
   {  
      "ImageUrl":"12-home_default/12",
      "Id":12,
      "IdParent":2,
      "Name":"Fruit"
   },
   {  
      "ImageUrl":"336-home_default/336",
      "Id":336,
      "IdParent":2,
      "Name":"Papers"
   },
   {  
      "ImageUrl":"33-home_default/33",
      "Id":33,
      "IdParent":2,
      "Name":"Food"
   },
   {  
      "ImageUrl":"95-home_default/95",
      "Id":95,
      "IdParent":2,
      "Name":"Meet"
   },
   {  
      "ImageUrl":"121-home_default/121",
      "Id":121,
      "IdParent":2,
      "Name":"Bolvery"
   },
   {  
      "ImageUrl":"145-home_default/145",
      "Id":145,
      "IdParent":2,
      "Name":"Milk Breakfast"
   },
   {  
      "ImageUrl":"189-home_default/189",
      "Id":189,
      "IdParent":2,
      "Name":"Food OUt"
   },
   {  
      "ImageUrl":"269-home_default/269",
      "Id":269,
      "IdParent":2,
      "Name":"Cleaning"
   },
   {  
      "ImageUrl":"305-home_default/305",
      "Id":305,
      "IdParent":2,
      "Name":"Babies"
   },
   {  
      "ImageUrl":"401-home_default/401",
      "Id":401,
      "IdParent":2,
      "Name":"Lifestyle"
   },
   {  
      "ImageUrl":"413-home_default/413",
      "Id":413,
      "IdParent":2,
      "Name":"Products"
   },
   {  
      "ImageUrl":"426-home_default/426",
      "Id":426,
      "IdParent":2,
      "Name":"Copaigns"
   },
   {  
      "ImageUrl":"23-home_default/23",
      "Id":23,
      "IdParent":12,
      "Name":"Seeds"
   },
   {  
      "ImageUrl":"344-home_default/344",
      "Id":344,
      "IdParent":336,
      "Name":"Mouth products"
   },
   {  
      "ImageUrl":"34-home_default/34",
      "Id":34,
      "IdParent":33,
      "Name":"Macarna"
   },
   {  
      "ImageUrl":"103-home_default/103",
      "Id":103,
      "IdParent":95,
      "Name":"Animals"
   },
   {  
      "ImageUrl":"127-home_default/127",
      "Id":127,
      "IdParent":121,
      "Name":"Drinks"
   },
   {  
      "ImageUrl":"146-home_default/146",
      "Id":146,
      "IdParent":145,
      "Name":"Milk"
   },
   {  
      "ImageUrl":"190-home_default/190",
      "Id":190,
      "IdParent":189,
      "Name":"Electronics"
   },
   {  
      "ImageUrl":"276-home_default/276",
      "Id":276,
      "IdParent":269,
      "Name":"Cleaning2"
   },
   {  
      "ImageUrl":"310-home_default/310",
      "Id":310,
      "IdParent":305,
      "Name":"Kids Cleaning"
   },
   {  
      "ImageUrl":"402-home_default/402",
      "Id":402,
      "IdParent":401,
      "Name":"Traveling"
   }
]
I am trying to fill this Json file to Tree Structure like the one below:
public class Tree<T> {
    private Node<T> root;
    public Tree(T rootData) {
        root = new Node<T>();
        root.data = rootData;
        root.children = new ArrayList<Node<T>>();
    }
    public static class Node<T> {
        private T data;
        private Node<T> parent;
        private List<Node<T>> children;
    }
}
So that when user clicks on on of the Nodes, if it has children, it will list the children, otherwise, it will open the products of that category.
I have converted the Json to List<Category>
How to convert List<Category> to Tree?
 
    