Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android上使用GSON解析JSON数据_Java_Android_Json_Gson - Fatal编程技术网

Java 在Android上使用GSON解析JSON数据

Java 在Android上使用GSON解析JSON数据,java,android,json,gson,Java,Android,Json,Gson,我正在尝试使用Gson解析以下JSON数据: [ { "idRed":1, "nombre":"XXXX", "imagen":"XXXXX.png", "imagenPublica":"XXXXX.png", "grupos":[ { "idGrupo":-1, "nombre":"Todos" }, { "idGrupo":1, "nombre":"

我正在尝试使用Gson解析以下JSON数据:

[
  {
    "idRed":1,
    "nombre":"XXXX",
    "imagen":"XXXXX.png",
    "imagenPublica":"XXXXX.png",
    "grupos":[
      {
        "idGrupo":-1,
        "nombre":"Todos"
      },
      {
        "idGrupo":1,
        "nombre":"Principal"
      }
    ]
  },
  ...
]
我有两个实体来封装JSON数据:

[
  {
    "idRed":1,
    "nombre":"XXXX",
    "imagen":"XXXXX.png",
    "imagenPublica":"XXXXX.png",
    "grupos":[
      {
        "idGrupo":-1,
        "nombre":"Todos"
      },
      {
        "idGrupo":1,
        "nombre":"Principal"
      }
    ]
  },
  ...
]
公共类红色工具可包裹{ @序列化的 私有长idRed=0; @阿蒙姆布雷酒店 私有字符串nombre=; @序列化DNA图像 私有字符串url=; @序列化DNAMEGRUPOS private ArrayList grupos=新的ArrayList; //接球手和接球手 } 以及:

公共类Grupo实现了Parcelable{ @序列化DNAMEIDGRUPO 私有长idGrupo=0; @序列化的 私有长idRed=0; @阿蒙姆布雷酒店 私有字符串nombre=null; //接球手和接球手 } 最后,我有以下代码来解析JSON数据:

Gson Gson=新Gson; List redes=List gson.fromJsonresult,新类型标记{}.getType; 我可以在变量result中看到我的JSON,但是程序抛出了一个异常


你能在我的代码中看到任何错误吗?

首先:在json中添加一个根。在通过post/get获取此json后,可以通过字符串操作来完成

{
result: [
  {
      "idRed":1,
      "nombre":"XXXX",
      "imagen":"XXXXX.png",
      "imagenPublica":"XXXXX.png",
      "grupos":[
         {
            "idGrupo":-1,
            "nombre":"Todos"
         },
         {
            "idGrupo":1,
            "nombre":"Principal"
         }
       ]
  },
  ...
]
}
为root添加一个新类,其余的类仍然可以使用

public class Result implements Parcelable {
    @SerializedName("result")
    private ArrayList<Red> grupos = new ArrayList<Red>();
}

是的,我们有解决办法。发布logcat错误您得到了什么异常?请张贴日志这似乎不太可能是OPs问题。在有效的JSON之上添加另一层不会使解析变得更容易。