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

强制单元素数组成为对象

郏瀚
2023-03-14

我们有一个泽西1.18 jax-rs服务,它曾经使用jersey-json包来支持JSON。我们正在尝试迁移以使用MOXy,但不会破坏我们的JSON接口。不幸的是,jersey-json将单个元素列表编组为对象,将多元素列表编组为数组。默认情况下,MOXy将所有长度的列表编组为数组。我们知道MOXy编组的方式对客户端来说更容易使用,但是我们已经有很多客户端使用我们的接口,并且开始将单个元素列表编组为数组会破坏接口。有没有办法将MOXy配置为将单个元素列表作为对象而不是数组?

jersey json封送单个元素列表的方式:

"user": {
    "name": "Fred Durst",
    "phone": "555-222-1111"
}

MOXy 封送单元素列表的方式:

"user": [
    {
        "name": "Fred Durst",
        "phone": "555-222-1111"
    }
]

我们希望将 MOXy 配置为为单元素列表生成以前的序列化。这可能吗?我们使用的是 MOXy 的 v2.5.2。

共有1个答案

梁丘权
2023-03-14

看起来这可以通过设置以下属性来实现:

MarshallerProperties.JSON_REDUCE_ANY_ARRAYS

为<code>真。如果您使用的是MOXyJsonProvider,则必须子类化并实现preWriteTo()才能访问封送器对象并设置上述属性。

编辑JSON_REDUCE_ANY_array不起作用。看到这个错误了。

 类似资料:
  • 我有以下课程: 以及物品的收集。我想知道集合中最后一项的名称。为此,我只需遍历所有集合并使用last。问题是我不知道为什么它强迫我使用单元素字符串数组。 为什么我必须使用: 而不是:

  • 问题内容: 我有一个数组: 我想创建的另一个数组和其唯一的元素为x。 我已经试过这段代码: 但是它会产生一系列形状。 我当然可以做: 但我希望该解决方案能够轻松扩展到更大的形状,例如: 无需在所有索引上运行循环。 有什么建议可以做到这一点吗? UPD1 数组可能不同,如: 它们也可能具有不同的形状,但是对于那种情况,一个简单的构造函数就可以了 UPD2 我真的想要一种可以处理任意形状(不一定都一样

  • 问题内容: 具有如下数据结构: 如何构造Items的标题数组?如[‘One’,’Two’] 如果 标题 == [] {。,则此代码集将生成“语法错误:意外的标识符” 。 问题答案: 我只会用新数组返回标题 小提琴 此外,该错误是由于缺少括号引起的 应该 甚至更好

  • 假设我有一个叫“序列”的类。这个类有一个实例变量。还有一些方法可以创建这个选项卡,比如: 现在,我想创建一个方法,它接受两个Sequence对象作为参数,并返回相同tab元素的数量。所以,我创建了这样的方法:

  • 我有一个类似 我试图使所有元素联合元素,但同一子数组中的元素不得复制。 这将根据第一个子数组中的元素数进行添加。我试过了,但找不到任何解决办法。有人能帮忙吗? 这是我试过的代码: 提前感谢。!

  • 本文向大家介绍将Java HashSet的所有元素复制到对象数组,包括了将Java HashSet的所有元素复制到对象数组的使用技巧和注意事项,需要的朋友参考一下 声明一个HashSet并添加元素- 要复制所有元素,请使用方法- 以下是将所有元素复制到HashSet到对象数组的示例- 示例 输出结果