2

我正在用 Gson 解析 json,但我正在努力处理我得到的数据。这是我无法控制的 API (openFDA) 的一部分,因此更改它可能不是一种选择。

这是我正在苦苦挣扎的 json:https ://api.fda.gov/device/event.json?search=device.generic_name:generator&limit=10

有一些字段不一致,例如remedial_action。有时它会像这样出现:

"remedial_action": [
        "Recall"
]

在其他类似的结果中:

"remedial_action": ""

所以它要么是一个数组,要么是一个纯字符串。有没有办法处理这个?如果在 Gson 中不可能,还有其他可以提供帮助的 json 解析库吗?

我在这里创建了我的 pojo ,以防有人需要代码。有一些文件是从那里创建的,不想在这里发送垃圾邮件。如果需要,我可以添加它们。

更新:该错误已得到确认,并计划修复。

4

1 回答 1

2

可以通过 GSON,使用TypeAdapter.

以下是我将用来执行此操作的初始步骤:

  1. 创建一个包含数组和字符串的 POJO。让我们称之为RemedialAction
  2. 在您原来的 POJO 中,创建新类的属性。
  3. 创建一个扩展类TypeAdapter<RemedialAction>
  4. 覆盖read()andwrite()方法并在其中创建逻辑。

不过,这应该有点难以解析。阅读本教程以获取更多信息。

注意:您可以自定义getRemedialAction()只给您有效的返回值——数组或字符串。

于 2015-09-02T21:32:25.030 回答