它正在工作当我试图通过gson检索jsonobject但是当我使用gson检索jsonArray时它不起作用。如何从下面的jsonArray中恢复数据并通过GSON显示到列表视图。
任何人都可以帮助我。
我的jsonArray
[
{
"node_title": "One Day camp",
"nid": "202605",
"Icon Image": {
"fid": "146",
"uid": "1",
"filename": "10483937_741467599279220_8365483080196647009_n.jpg",
"uri": "public://10483937_741467599279220_8365483080196647009_n.jpg",
"filemime": "image/jpeg",
}
},
{
"node_title": "University of Kerala",
"nid": "202604",
"Icon Image": {
"fid": "145",
"uid": "1",
"filename": "careerguru.png",
"uri": "public://careerguru.png",
"filemime": "image/png",
}
}
]
答案 0 :(得分:1)
我认为问题是,
"filemime": "xxx"
答案 1 :(得分:0)
编辑:我想我误解了你的问题。 venkatKA的回答是正确的。
通常,您将构建一个与您希望接收的json具有相同特征的对象。例如,
public class MyJsonObject {
private String node_title;
private String nid;
private static class IconImage {
private String fid;
private String uid;
private String filename;
private String uri;
private String filemime;
}
}
然后,您将循环遍历JSONArray,将它们与Gson序列化为MyJsonObject的数组。
(至于内部类,我知道Gson可以序列化内部类,但我不能100%确定将内部类声明为“Icon Image”的语法)
我的观点是,使用Gson可以轻松/方便地将Json响应序列化为对象。但是,如果您只是尝试从响应中获取数据,请使用JSONObject类。
答案 2 :(得分:0)
假设已经创建了要存储数据的POJO类,即:json数组中的单个json对象。
让我们假设这个类是Node.java并包含一个Node对象。
您可以使用以下代码通过Gson从json获取Node对象的列表。
Gson gson = new Gson();
Type listType = new TypeToken<List<Node>>(){}.getType();
List<Node> posts = (List<Node>) gson.fromJson(jsonOutput, listType);
现在,您可以使用List并使用它来显示列表中的数据。
是的,根据venkatKA的答案,json也是错误的,因为它有一个额外的“,”
希望它有所帮助...
答案 3 :(得分:0)
1.Remove , after the "filemime": "image/jpeg", json error.
2.Parse Json to Gson
public class Array {
@SerializedName("node_title")
@Expose
private String nodeTitle;
@SerializedName("nid")
@Expose
private String nid;
@SerializedName("Icon Image")
@Expose
private com.example.IconImage IconImage;
public String getNodeTitle() {
return nodeTitle;
}
public String getNid() {
return nid;
}
}
public class IconImage {
@SerializedName("fid")
@Expose
private String fid;
@SerializedName("uid")
@Expose
private String uid;
@SerializedName("filename")
@Expose
private String filename;
@SerializedName("uri")
@Expose
private String uri;
@SerializedName("filemime")
@Expose
private String filemime;
public String getFid() {
return fid;
}
public String getUid() {
return uid;
}
public String getFilename() {
return filename;
}
public String getUri() {
return uri;
}
public String getFilemime() {
return filemime;
}
I hope it helps you.
答案 4 :(得分:0)
这里有一个很好的例子:Gson and deserializing an array of objects with arrays in it
所以你需要像这样解析你的Json字符串:
public class IconImage {
int fid;
int uid;
String filename;
String uri;
String filemime;
}
public class Node {
String node_title;
int nid;
@SerializedName("Icon Image") IconImage icon_image;
}
Gson gson = new Gson();
Node[] myNodes = gson.fromJson(yourJsonString, Node[].class);
答案 5 :(得分:-1)
你可以拥有这样的课程:
class NodeList{
List<Node> allnode;
}
和其他类将是具有特定数组项的Node。