【问题标题】:Android: Handle different type of value with GSONAndroid:使用 GSON 处理不同类型的值
【发布时间】:2016-12-09 10:48:01
【问题描述】:

在我的应用程序中,我从 wordpress (RESP API v2) 网站获取并解析 JSON 流。

我使用 OKHTTPRETROFITGSON 转换器来读取流并将其解析为我的对象。

通常,我的 GSON 转换器需要一个对象,但由于最近的更新,网站给了我一个布尔值 (false)。该值尚未设置。

这是我的问题:“我可以使用 GSON 序列化处理同一变量名的不同类型的值吗?”

谢谢!


这是我的对象:

public static class StageProfileImage {





        //////////////////////////////////////////////////
        // Variables
        //////////////////////////////////////////////////
        @SerializedName("url")
        private String stageProfileImageUri;
        //////////////////////////////////////////////////





        //////////////////////////////////////////////////
        // Setters & Getters
        //////////////////////////////////////////////////
        public String getStageProfileImageUri() {
            return stageProfileImageUri;
        }
        public void setStageProfilUri(String stageProfileImageUri) {
            this.stageProfileImageUri = stageProfileImageUri;
        }
        /////////////////////////////////////////////





    }

重要提示:我无法修改流。

【问题讨论】:

    标签: android json gson


    【解决方案1】:

    试试@SerializedName(value = "url", alter = {"altkey1", "altkey2"})

    编辑:更改为更通用的示例。

    【讨论】:

    • 如果你想为同一个键解析多个值。您可以使用自定义 gson TypeAdapter 或将 ResponseBody 作为响应返回并自行解析。
    【解决方案2】:

    谢谢,但这不是我的问题。事实上,GSON 无法转换来自网站的流,因为不是这样:

    "stage_profile_image" : {
      ...
    }
    

    我的信息流告诉我:

    "stage_profile_image" : false
    

    在第一个中,我得到一个对象,但在第二个中,我得到一个布尔值,这不是它期望的值类型,GSON 无法进行转换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多