gpt4 book ai didi

java - 在 Java 中将一个 JSON 对象转换为另一个 JSON 对象

转载 作者:行者123 更新时间:2023-12-01 23:14:47 24 4
gpt4 key购买 nike

Java 类 JSONObject:

我有一个 JSON 对象,我只想从中提取一些键/值对到另一个 JSON 对象中。另外,我想更改提取的键的名称。最后,我想让输出对象“平坦”(即深度为 1 的所有元素)。

例如:

输入对象:

{
"a":"val_a",
"b":
{
"b1":"val_b1",
"b2":"val_b2"
},
"c":
{
"c1":"val_c1",
"c2":
{
"c21":"val_c21",
"c22":"val_c22"
}
}
}

输出对象:

{
"x":"val_a",
"y":"val_b1",
"z":"val_c22"
}

实现此目的的最佳(“最干净”)方法是什么?

目前,我正在“手动”一一提取字段,如下所示(对于上面的示例):

JSONObject output = new JSONObject();
output.put("x",input.getString("a"));
output.put("y",input.getJSONObject("b").getString("b1"));
output.put("z",input.getJSONObject("c").getJSONObject("c2").getString("c22"));

是否有某种“正则表达式”可以帮助我“一次性”实现这一目标?

非常感谢对给定示例的回答。

谢谢

最佳答案

一种替代方法是使用 JSON in Java框架将您的 JSON 对象转换为 Java,执行操作并生成新的 JSON 对象。

编辑:抱歉造成误解。

您确实应该选择一个框架,例如@Alessio 推荐的框架。虽然这应该可以通过使用正则表达式来完成,但我个人建议反对它,因为您正在寻找的嵌套和/或对象发生了变化可以给正则表达式本身带来很大的改变。因此,虽然正则表达式可以更快地完成工作,但它可能不那么可读和可维护。

关于java - 在 Java 中将一个 JSON 对象转换为另一个 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21425781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com