当前位置: 首页 > 知识库问答 >
问题:

将JSON文件中的所有元素收集到单个列表中

公孙辰龙
2023-03-14

我正在使用Gson 2.8.1+(如果需要,我可以升级)。

如果我有JSONObject:

"config" : {
        "option_one" : {
            "option_two" : "result_one"
        }
    }
}

...如何有效地将此转换为表单:

"config.option_one.option_two" : "result_one"

共有1个答案

柴意智
2023-03-14

你能想到的最简单的算法是递归折叠。您首先递归地潜到一个结构的底部,然后询问映射中是否只有一个元素(您必须使用某种框架解析json,以得到一个map 结构)。如果存在,则将parent字段的字符串与property连接起来,并将parent的值设置为该属性的值。然后向上移动并重复该过程,直到到达根目录为止。当然,如果map有多个字段,您将转到父字段并尝试EGAN。

 类似资料:
  • 问题内容: 我有一个小整数列表,说: 我希望收集顺序对并返回一个包含从这些对创建的元组的新列表,即: 我知道必须有一种非常简单的方法来执行此操作,但不能完全解决。 谢谢 问题答案: 好吧,有一种非常简单但有些脆弱的方法,将其自身切片后再压缩。 如果您不知道,最后一个slice参数是“ step”。因此,我们从零(1、3、5)开始选择列表中的第二个项目。然后,我们执行相同的操作,但是从一个(2,4,

  • 我用Flume收集推文,并存储在HDFS上。收集部分工作正常,我可以在我的文件系统中找到我所有的推文。 正如我们所看到的,推文存储在128MB的块中,但只使用几个Ko,这是HDFS的正常行为,如果我错了,请纠正我。 然而,我如何在一个文件中获取所有不同的推文? 这是我使用以下命令运行的conf文件: flume ng agent-n TwitterAgent-f./my flume files/t

  • 我在编写一个将方法参数列表中的所有元素追加到另一个列表末尾的方法时遇到了麻烦。如果列表被更改,该方法应该返回true,否则返回false。 例如,如果原始列表是1->6->5,而另一个列表是3->8->2。呼叫结束后,列表现在是1->6->5->3->8->2。 Boolean return语句给我带来了麻烦,因为我不清楚它们是如何链接到列表的逻辑中的。我也不知道指针需要移动多远才能追加列表。整件

  • 问题内容: 有人告诉我 编写一个函数square(a),该函数接受一个数字数组a并返回一个包含每个平方值的数组。 起初,我有 但是,由于我正在打印,而且没有像被问到的那样返回,因此这不起作用。所以我尝试了 但这仅平方我数组的最后一个数字。我如何才能使整个列表平方? 问题答案: 您可以使用列表理解: 或者您可以: 或者,您可以使用发电机。它不会返回列表,但是您仍然可以迭代它,并且由于不必分配整个新列

  • 我有以下代码: 如您所见,我需要将< code >流的元素收集到< code >队列中,而不是< code >列表中。但是,没有< code > collectors . to queue()方法。如何将元素收集到< code >队列中?

  • 我想在java中创建一个方法,该方法接收两个字符串列表: