【问题标题】:Merging common JSON objects合并常见的 JSON 对象
【发布时间】:2014-02-01 04:56:54
【问题描述】:

我正在寻求一些帮助,以获取输入 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'
                                  }
                           ]
                     }
              ]
       }
]

【问题讨论】:

  • 什么,具体,您需要帮助吗?
  • 除非你能提供具体问题的解释,否则每个人都倾向于认为这是功课。
  • 我正在专门寻找如何根据输入的通用参数将组合并在一起以用于输出,我不确定要提供什么更多细节。
  • 我知道我需要做的是接受输入的 json,然后创建一个文件夹结构,从根目录开始 - 然后根据每个代表的父关系开始递归列出文件夹 - 我是只是试图找出从文件中获取 json 对象的开始,然后循环遍历并将对象分开 - 从那里我将在创建输出结构时遇到更多混乱。

标签: java json


【解决方案1】:

提示:

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

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

  3. 大概您已经获得了一些关于读取/写入 JSON ... 或文档链接/参考的技术说明。

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


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

【讨论】:

  • 感谢您的提示,我确实发布了这个作为初学者类型的问题,关于如何进行一些中级 json 解析。我会把这些提示作为一个很好的答案!
  • 我认为我正在寻找的是帮助分解问题的各个部分,而不是特定代码本身。知道我必须对给定结构进行一些映射以假设输出结构并在其之外添加一些逻辑以允许嵌套是一个很大的收获 - 谢谢!
猜你喜欢
  • 2016-03-16
  • 2019-04-05
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
相关资源
最近更新 更多