我正在尝试使用Gson来解析以下JSON数据:
[
{
"idRed":1,
"nombre":"XXXX",
"imagen":"XXXXX.png",
"imagenPublica":"XXXXX.png",
"grupos":[
{
"idGrupo":-1,
"nombre":"Todos"
},
{
"idGrupo":1,
"nombre":"Principal"
}
]
},
...
]
我有两个实体来封装JSON数据:
public class Red implements Parcelable {
@SerializedName("idRed")
private long idRed = 0;
@SerializedName("nombre")
private String nombre = "";
@SerializedName("imagen")
private String url = "";
@SerializedName("grupos")
private ArrayList<Grupo> grupos = new ArrayList<Grupo>();
//getters and setters
}
和
public class Grupo implements Parcelable {
@SerializedName("idGrupo")
private long idGrupo = 0;
@SerializedName("idRed")
private long idRed = 0;
@SerializedName("nombre")
private String nombre = null;
//getters and setters
}
最后我有这个代码来解析JSON数据:
Gson gson = new Gson();
List<Red> redes = (List<Red>) gson.fromJson(result, new TypeToken<List<Red>>() {}.getType());
我可以在变量result
中看到我的JSON,但程序会抛出异常。
你能看到我的代码中有任何错误吗?
答案 0 :(得分:-1)
首先:在你的json中添加一个root。你可以通过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>();
}