Android 从后端服务器返回的非同构JSON数据

Android 从后端服务器返回的非同构JSON数据,android,json,okhttp,Android,Json,Okhttp,我的Android应用程序很简单,公司向员工推出工作,员工接受或拒绝工作机会。这是我的流程,每当工作人员的手机上接受了一个作业,我就会重新获取该作业以更新屏幕,JSON是一个同构数组结构 所以我遇到了这个错误,如果我有两个公司的工作,比如说A公司的两个工作和B公司的一个工作,如果我接受B公司提供的工作,因为这是列表上最后一个B公司的工作,响应数据类型是非齐次的。关于JSON返回之前和之后的内容,请参见下文 标有“BEFORE”的图片是我有2份A公司工作和1份B公司工作时的照片。在接受1 com

我的Android应用程序很简单,公司向员工推出工作,员工接受或拒绝工作机会。这是我的流程,每当工作人员的手机上接受了一个作业,我就会重新获取该作业以更新屏幕,JSON是一个同构数组结构

所以我遇到了这个错误,如果我有两个公司的工作,比如说A公司的两个工作和B公司的一个工作,如果我接受B公司提供的工作,因为这是列表上最后一个B公司的工作,响应数据类型是非齐次的。关于JSON返回之前和之后的内容,请参见下文

标有“BEFORE”的图片是我有2份A公司工作和1份B公司工作时的照片。在接受1 company B作业并重新获取作业请求后,我在后图中得到了JSON响应。虽然它是一个有效的JSON返回,但是由于数组前面的逗号使JSON结构与之前的图片完全不同,唯一的解决方法是预测“2公司a,1公司B”场景并创建一个新的POJO来解析此返回,有更好的方法解决它吗

应该在客户端(移动)或服务器端(后端)纠正此问题吗


谢谢

这个问题应该在后端解决。您当前正在返回一个“作业”对象数组,为什么这个数组突然包含一个字符串

如果您必须返回某些内容,空对象(或上一个对象带有类似
“valid”:false的内容)比字符串更有意义


或者(也不是很干净)您可以解析数组,然后检查每个对象是否都是您的作业对象,最后得到一个新的数组,它正好是您想要的类型。

这个问题应该在后端解决。您当前正在返回一个“作业”对象数组,为什么这个数组突然包含一个字符串

如果您必须返回某些内容,空对象(或上一个对象带有类似
“valid”:false的内容)比字符串更有意义

或者(也不是很干净)可以解析数组,然后检查每个对象是否都是您的作业对象,最后得到一个新的数组,它正好是您想要的类型