小编Ste*_*rce的帖子

如何使用Gson处理具有相同属性名称的不同数据类型?

我目前正在使用Gson在Java中编写RSS提要解析器.我正在将RSS'XML转换为JSON,然后使用Gson将JSON反序列化为Java POJO(有点迂回,但有一个原因).对于下面列出的Feed#1(BBC)进行反序列化,一切都运行正常,但对于下面列出的Feed#2(NPR),我开始抛出异常.

我想我已经确定了问题,但我不确定如何解决它:


问题出现在这两个RSS源(例如):

  1. http://feeds.bbci.co.uk/news/rss.xml
  2. http://www.npr.org/rss/rss.php?id=1001

对于这些不同的RSS源,称为"guid"的字段作为a)具有2个字段的对象(如在BBC RSS Feed中)或b)字符串(如在NPR RSS Feed中)返回.

以下是相关JSON的一些释义版本:

BBC RSS Feed

// is returning 'guid' as an object
"item" : 
[
    {
        // omitted other fields for brevity
        "guid" : {
            "isPermalink" : false,
            "content" : "http:\/\/www.bbc.co.uk\/news\/uk-england-33745057"
        },
    },
    {
        // ...
    }
]
Run Code Online (Sandbox Code Playgroud)

NPR RSS Feed

// is returning 'guid' as a string
"item" : 
[
    {
      // omitted other fields for brevity
      "guid" : …
Run Code Online (Sandbox Code Playgroud)

java json gson deserialization json-deserialization

10
推荐指数
3
解决办法
5221
查看次数

标签 统计

deserialization ×1

gson ×1

java ×1

json ×1

json-deserialization ×1