相关疑难解决方法(0)

使GsonRequest接受空列表或空数组

我有一个从服务器中提取的Json数据.此数据包含多个对象和数组.

第一个模型如下:

{
  "results": [
    {
      "id": "17",
      "name": "Accessories",
      "child": [
        {
          "id": "371",
          "name": "Belt"
        },
        {
          "id": "55",
          "name": "Derp"
        },
        ...
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是,有些results数组没有child数组.相反,它有一个空值的String.

{
  "results": [
    {
      "id": "19",
      "name": "Stuff",
      "child": ""
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

执行代码时,它返回以下行:

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING
Run Code Online (Sandbox Code Playgroud)

这就是模型的样子:

public class CategoryModel {
    @SerializedName("id")
    private String category_id;
    private String name;
    private ArrayList<CategoryChildModel> child;

    ...
}
Run Code Online (Sandbox Code Playgroud)

这就是我实现GsonRequest(使用Volley作为后台asynctask)的方法:

private void loadCategory() {
    mRequestQueue = Volley.newRequestQueue(getActivity()); …
Run Code Online (Sandbox Code Playgroud)

android json gson

0
推荐指数
1
解决办法
1065
查看次数

标签 统计

android ×1

gson ×1

json ×1