验证null Curly括号json - Android

时间:2017-08-14 08:05:11

标签: android android-json gson

我从服务中获得了json如下:

[
    {
        "commentID": 21,
        "commentAuthor": "AAA",
        "commentText": "BBB",
        "commentDate": 1484824835,
        "productName": "XXXXX",
        "productUrl": "xxx.html",
        "productPictureUrl": "yyy.jpg"
    } ,
{
        "commentID": 21,
        "commentAuthor": "AAA",
        "commentText": "BBB",
        "commentDate": 1484824835,
        "productName": "XXXXX",
        "productUrl": "xxx.html",
        "productPictureUrl": "yyy.jpg"
    }
]

我通过jsonretrofit获得Gson以上。

Problem:如果json为空,如下所示我可以验证它吗?

[{}]

我得json的值Gson如下:

RetrofitApi.getVendorAdminApi()
        .getComments(userToken, pageNumber)
        .enqueue(new Callback<List<Comment>>() {
            @Override
            public void onResponse(Call<List<Comment>> call, Response<List<Comment>> response) {
                if (response.isSuccessful()) {

                    resultListener.onSuccess(response.body());
                } else {
                    resultListener.onFailure();
                }
            }

            @Override
            public void onFailure(Call<List<Comment>> call, Throwable t) {
                resultListener.onFailure();
                t.printStackTrace();
            }
        }); 

2 个答案:

答案 0 :(得分:0)

  

[{}] //错误

从服务器整理您的响应。这将是

  

[] //完美

你应该检查 Json数组 SIZE

if (JsonOBJ.size()==0) 
 {
   Toast.makeText(this, "Json Is Empty", Toast.LENGTH_LONG).show();
 }

修改

 if (JsonOBJ.entrySet().size()==0) 
 {
   Toast.makeText(this, "Json Is Empty", Toast.LENGTH_LONG).show();
 }

答案 1 :(得分:0)

默认情况下,我认为Gson omits null fields

因此,{}

相同
{
    "commentID": null,
    "commentAuthor": null,
    "commentText": null,
    "commentDate": null,
    "productName": null,
    "productUrl": null,
    "productPictureUrl": null
} 

如果您定义了new Comment(),并将其与response.body().get(0)进行了比较,则应该相同。

注意:这要求您在equals()

中实施hashcode()Comment.java方法