скажем, у меня есть хэш-карта ключевых значений. Выглядит это так:
ListBuffer(HashMap(parentvalue -> , child -> State, value -> Delhi, parent ->India ),
HashMap(parentvalue -> , child -> State, value -> Maharastra, parent ->India ),
HashMap(parentvalue ->Delhi , child -> City, value -> Agra, parent ->State ),
HashMap(parentvalue ->Maharastra , child -> City, value -> Pune, parent ->State),
HashMap(parentvalue ->Agra , child -> Region, value -> A1, parent ->City ),
HashMap(parentvalue ->Pune , child -> Region, value -> P1, parent ->City),
HashMap(parentvalue ->Agra , child -> Region, value -> A2, parent ->City ),
HashMap(parentvalue ->Pune , child -> Region, value -> P2, parent ->City))
Здесь у каждого родителя есть родительский тип. Если у родителя нет родительского значения, то это считается родительским узлом здесь его Индия, и каждый родитель имеет дочерний узел и значение в Во втором случае chlid может быть родительским и у него есть дочерний элемент. Количество уровней не определено, это может быть любой. Я хочу, чтобы это было преобразовано в иерархический объект json в формате ниже.
{
"Header":[
{
"label":"India",
"children":[
{
"label":"state",
"value":"Delhi",
"children":[
{
"label":"City",
"value":"Agra"
"children":[
{
"label":"Region"
"value":"A1"
},
{
"label":"Region"
"value":"A2"
}
]
}
]
},
{
"label":"State",
"value":"Maharastra",
"children":[
{
"label":"City",
"value":"Pune"
"children":[
{
"label":"Region"
"value":"P1"
},
{
"label":"Region"
"value":"P2"
}
]
}
]
}
]
}
]
}
Настоятельно рекомендую использовать библиотеку для данных JSON - популярный выбор - circe circe.github.io/circe