【问题标题】:How to deserialize unknown properties with JSON-B?如何使用 JSON-B 反序列化未知属性?
【发布时间】:2020-09-13 20:48:48
【问题描述】:

我正在尝试使用 Quarkus 的 JSON-B 实现反序列化以下 JSON (see API documentation)。

让我烦恼的是为多个 JSON 对象动态生成的数字键。我想将所有未知属性反序列化为Map<Long, MyObject>。简单地在数据对象中声明一个 Map 是行不通的。

Jackson 似乎完全支持使用 @JsonAnySetter 注释的所需行为(请参阅 documentation)。

我能做的是编写自己的 JsonbAdapter 来手动解析未知属性,但对于如此简单的任务来说,这似乎是一项荒谬的工作。

如何使用 JSON-B 将未知的 JSON 属性反序列化为 Map?

{
  "634": {
    "AT": {
      "av": -61.082, 
      "ct": 314284, 
      "mn": -94.58, 
      "mx": -16.136
    }, 
    "First_UTC": "2020-09-07T15:29:16Z", 
    "HWS": {
      "av": 6.685, 
      "ct": 156912, 
      "mn": 0.452, 
      "mx": 17.887
    }, 
    "Last_UTC": "2020-09-08T16:08:49Z", 
    "PRE": {
      "av": 775.846, 
      "ct": 159956, 
      "mn": 746.3902, 
      "mx": 793.7311
    }, 
    "Season": "summer", 
  }, 
  "635": { ... }, 
  "636": { ... }, 
  "638": { ... }, 
  "sol_keys": [
    "634", 
    "635", 
    "636", 
    "638", 
  ], 
}

【问题讨论】:

    标签: java json resteasy quarkus jsonb-api


    【解决方案1】:

    它不会直接回答您的问题,但 JSON-B 不具备 Jackson 的所有功能。

    因此,如果您错过了某个功能,您可以直接使用 Jackson:它也是 Quarkus 世界的一等公民。对于每个 JSON-B 扩展,我们都有对应的 Jackson。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多