Gson:有时是字符串和其他数组的字段

时间:2015-09-02 21:20:57

标签: java json parsing alternating

我正在和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解析库?

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

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

1 个答案:

答案 0 :(得分:2)

可以通过GSON使用TypeAdapter

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

  1. 创建包含数组和String的POJO。我们称之为RemedialAction
  2. 在原始POJO中,创建新类的属性。
  3. 创建一个扩展TypeAdapter<RemedialAction>
  4. 的类
  5. 覆盖read()write()方法并在其中创建逻辑。
  6. 但是,这应该有点难以解析。请阅读Multiprocessing Queue maxsize limit is 32767以获取更多信息。

    注意:您可以自定义getRemedialAction(),只为您提供有效的返回数组或字符串。