我知道这是映射时非常常见的问题,但我的问题是听到的情况有些不同
当我的回复have the data
它给我JSON Response
这样的
{
"responseID": "110",
"resultSet": [
{
"USERNAME": "Aninja",
"position": "Developer",
"salary": "60000"
}
],
"isSuccessful": true,
"rtnCode": "0000"
}
及以下内容与JSON response
when data is not found
{
"responseID": "123",
"resultSet": {},
"isSuccessful": true,
"rtnCode": " "
}
我可以看到,当响应有一些数据时result set
有JSON Array
,但是当找不到数据时,我们会将JSON Object
作为回复
所以这就是我遇到这个问题的原因。 所以我的问题是,我应该如何处理这个问题,感谢您的回复
修改:主要问题是我的模型如list of JSON Object
我的模型在有结果的情况下工作正常但它却给我错误Can't convert JSON Object to JSON Array
when result is empty
请建议我如何处理它我使用Jackson 2.2
我还试过@JsonInclude(Include.NON_EMPTY)
和@JsonInclude(Include.NON_NULL)
答案 0 :(得分:0)
我不会说这是来自服务器或后端的错误。但是提供适当的“空对象模式”总是一种很好的做法,它描述了这些对象及其行为的用途。
因此,对于更好的练习,没有任何值的数组应该使用“[]”发回。所以在这种情况下,“resultSet”应该以[]而不是{}给出,以便在前端很容易理解。
这里有很多例子说明为什么遵循Null对象模式很有用。
例如,如果您在响应中返回count并且没有计数,那么最好使用“0”而不是“null”。