合并常见的JSON对象

时间:2014-02-01 04:56:55

标签: java json

我正在寻找一些帮助来获取输入JSON对象,并将该对象中的公共项合并到一个输出中,然后将输入中的项组合在一起,这是下面给出的问题:

编写将输入JSON数据转换为输出JSON格式的代码。它应该能够处理任意数量的嵌套级别。每个孩子只能有一个父母(类型为'文件夹'),每个父母可能有多个孩子(类型为'文件夹'或'文件')。

示例输入数据:

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

示例输出数据:

[
       {
              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 个答案:

答案 0 :(得分:1)

提示:

  1. 问题有部分:将JSON读入内存,处理内存中的表示,然后输出结果。

  2. 简单读取所需的输出会告诉您数据结构不同。你有额外的属性......

  3. 据推测,您已经获得了一些关于读/写JSON ...或链接/引用文档的技术的指导。

  4. 不需要递归。基本上,您需要一个临时数据结构,将名称“映射”到对象,然后使用它来帮助您将树的各个部分连接在一起。 (考虑一下!有一个名为Map的Java接口......)


  5. 基本上,你需要自己解决这个问题。这就是你学习的方式。您经历的困惑对于初学者来说是典型的...但是您获得的练习越多,就越容易。