android – retrofit:处理可以是空字符串或数组的属性

android – retrofit:处理可以是空字符串或数组的属性,第1张

概述我正在使用Retrofit2,并且我被要求使用以下json: { “status”:”success”, payload{ “prop1”: 1234, “prop2”: “” } } 问题是prop2可以是空字符串或对象数组. (空数组不是它们的选项) 我不记得Retrofit有一种机制来处理这种类型的不一致.我正在寻找一个可能接收这个属性的配方作为某种通用对象,任何可能使用GSon稍后解析它或 我正在使用Retrofit2,并且我被要求使用以下Json:

{ “status”:”success”,
payload{
“prop1”: 1234,
“prop2”: “” } }

问题是prop2可以是空字符串或对象数组. (空数组不是它们的选项)

我不记得Retrofit有一种机制来处理这种类型的不一致.我正在寻找一个可能接收这个属性的配方作为某种通用对象,任何可能使用GSon稍后解析它或其他一些替代方法使其工作.

解决方法 您可以尝试这个来检查prop2是数组还是空字符串

JsonObject JsonObject = new Gson().fromJson("{ \"status\":\"success\",\"payload\": { \"prop1\": 1234,\"prop2\": \"\" } }",JsonObject.class);JsonObject payload = JsonObject.getAsJsonObject("payload");JsonElement JsonElement = payload.get("prop2");if (JsonElement.isJsonArray()) {    // value of prop2 is an array} else if (JsonElement.isJsonPrimitive()) {    JsonPrimitive JsonPrimitive = JsonElement.getAsJsonPrimitive();    if (JsonPrimitive.isstring() && "".equals(JsonPrimitive.getAsstring())) {        // value of prop2 is an empty String    }}
总结

以上是内存溢出为你收集整理的android – retrofit:处理可以是空字符串或数组的属性全部内容,希望文章能够帮你解决android – retrofit:处理可以是空字符串或数组的属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1123764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存