{ “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:处理可以是空字符串或数组的属性所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)