如果一个"action"键-值对重复出现,我想把每个相关的"myObject"添加到一个列表中,如下所示。有没有办法使用GSON或JACKSON来实现这个目的?不幸的是,没有编辑输入JSON的选项。如果这个问题不清楚,请告诉我。
输入
[
{
myObject: {
name: "foo",
description: "bar"
},
action: "create",
},
{
myObject: {
name: "baz",
description: "qux"
},
action: "create",
},
];
所需输出
{
"action": "create",
"myObject": [
{
name: "foo",
description: "bar"
},
{
name: "baz",
description: "qux"
},
]
};
我是Java中JSON解析的新手,不幸的是还没有在StackOverflow上找到像我这样的用例。我试着这样配置我的ObjectMapper-
new ObjectMapper().configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
并使用
@JsonAnySetter
注解,但还没有让它们工作。
1条答案
按热度按时间jq6vz3qz1#
你可以用两个单独的模型类来解决这个问题,一个用于原始结构,一个用于转换后的结构。为了简单起见,我在下面称它们为
OriginalModel
和TransformedModel
,你可能应该选择更有意义的名称。下面的代码使用Gson,但你可能也可以用Jackson实现类似的功能。如果你声明这些类为嵌套类,你应该使它们成为
static
。然后,您可以首先使用原始模型类解析JSON数据,使用转换后的类手动创建所需的结果结构,并将其序列化为JSON: