Merging common JSON objects

Refresh

November 2018

Views

155 time

2

I'm looking for some assistance with taking an input JSON object, and merging the common items in that object in to an output that then groups the items from the input together, here is the problem given below:

Write code that converts the input JSON data to the output JSON format. It should be able to handle any number of levels of nesting. Each child can only have one parent (of type ‘folder’), and each parent may have multiple children (of type ‘folder’ or ‘file’).

Sample Input Data:

[
{
       name:'file1',
       parent:'folder1',
       type:'file'
},
{
       name:'file2',
       parent:'folder2',
       type:'file'
},
{
       name:'folder1',
       parent:'root',
       type:'folder'
},
{
       name:'folder2',
       parent:'folder1',
       type:'folder'
}
]

Sample Output Data:

[
       {
              name:'folder1',
              parent:'root',
              type:'folder',
              children:[
                     {
                           name:'file1',
                           parent:'folder1',
                           type:'file'
                     },
                     {
                           name:'folder2',
                           parent:'folder1',
                           type:'folder',
                           children:[
                                  {
                                         name:'file2',
                                         parent:'folder2',
                                         type:'file'
                                  }
                           ]
                     }
              ]
       }
]

1 answers

1

подсказки:

  1. Проблема имеет части: чтение JSON в память, обработка представления в памяти, и вывод результатов.

  2. Простое чтение требуемой производительности говорит о том, что структура данных отличается. У вас есть дополнительные атрибуты ...

  3. Предположительно вы получили некоторые инструкции по технике для чтения / записи JSON ... или ссылки / ссылки на документацию.

  4. Рекурсия не является необходимой. В основном вам нужна временная структура данных , которая «карты» имя для объекта, и использовать это , чтобы помочь вам соединить части дерева вместе. (Подумайте об этом! Существует интерфейс Java называется Map...)


В принципе, вы должны работать через это самостоятельно. Вот как вы учитесь. Путаница вы опыт типична для начинающих ... но больше практики вы получите, тем легче будет.