我需要根据JSON
数据创建动态树。我有一个类别列表,每个类别都有一个子子类别,其子类别有一个子类别。
我的JSON
数据示例是:
[
{
"Id": 110,
"Name": "Winter Collection",
"ParentCategoryId": 0,
"Description": null,
"DisplayOrder": 0
},
{
"Id": 111,
"Name": "Hoodies",
"ParentCategoryId": 110,
"Description": null,
"DisplayOrder": 0
},
{
"Id": 113,
"Name": "Pullover/Sweater",
"ParentCategoryId": 110,
"Description": null,
"DisplayOrder": 0
}
{
"Id": 116,
"Name": "Jacket \u0026 Blazer",
"ParentCategoryId": 110,
"Description": null,
"DisplayOrder": 0
},
{
"Id": 118,
"Name": "Sweatshirts",
"ParentCategoryId": 110,
"Description": null,
"DisplayOrder": 0
},
{
"Id": 119,
"Name": "Winter Accessories",
"ParentCategoryId": 110,
"Description": null,
"DisplayOrder": 2
},
{
"Id": 23,
"Name": "Men\u0027s T-Shirt",
"ParentCategoryId": 0,
"Description": null,
"DisplayOrder": 1
},
{
"Id": 24,
"Name": "Men\u0027s T-Shirt (Full sleeve)",
"ParentCategoryId": 23,
"Description": null,
"DisplayOrder": -1
},
{
"Id": 79,
"Name": "Black T-Shirt",
"ParentCategoryId": 23,
"Description": null,
"DisplayOrder": 0
},
{
"Id": 80,
"Name": "White T-Shirt",
"ParentCategoryId": 23,
"Description": null,
"DisplayOrder": 0
},
{
"Id": 81,
"Name": "Red T-Shirt",
"ParentCategoryId": 23,
"Description": null,
"DisplayOrder": 0
},
{
"Id": 82,
"Name": "Blue T-Shirt",
"ParentCategoryId": 23,
"Description": null,
"DisplayOrder": 0
},
...............
]
主要Categories
parentid==0
和Subcategories
(子女)的parentId
与id
Categories
的{{1}}相同。随后,每个Subcategory
都可以保留Child
。
我需要建一棵树。如果JSON
数据返回List<Category>
,则最终树将成为此类List
(即List<ParentCategory>
)
public class ParentCategory {
Category category;
List<ParentCategory> Subcategories;
}
如何在Java
数据结构中表示此树?
答案 0 :(得分:1)
最简单的方法是通过两次通过列表:
Pass1:创建一个由id键入的类别Map<Integer, ParentCategory>
,忽略ParentCategoryId和Subcategories。
Pass2:使用ParentCategoryId查找在Pass1中创建的ParentCategory并添加到它的子类别