JSON对象无法转换为JSON数组

时间:2015-10-30 13:43:09

标签: java json jackson jsonobject

我知道这是映射时非常常见的问题,但我的问题是听到的情况有些不同 当我的回复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 setJSON 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)

1 个答案:

答案 0 :(得分:0)

我不会说这是来自服务器或后端的错误。但是提供适当的“空对象模式”总是一种很好的做法,它描述了这些对象及其行为的用途。

因此,对于更好的练习,没有任何值的数组应该使用“[]”发回。所以在这种情况下,“resultSet”应该以[]而不是{}给出,以便在前端很容易理解。

这里有很多例子说明为什么遵循Null对象模式很有用。

例如,如果您在响应中返回count并且没有计数,那么最好使用“0”而不是“null”。