我正在尝试在Android项目中反序列化此JSON字符串,但我没有任何经验。
Sunday
我试图做这样的事情,但它不起作用:
{"nodes":[{"node":{"title":"esesese", "body":"hey world whatup"}}, {"node":{"title":"Asdasd", "body":"asdefasdefe"}}]}
使用此代码:
public class Nodes {
public Node[] nodes;
}
public class Node {
public String title;
public String body;
}
答案 0 :(得分:0)
您可以反序列化为
public class Nodes{
private List<Node> nodes = new ArrayList<Node>();
}
public class Node_ {
private String title;
private String body;
}
public class Node {
private Node_ node;
}
在代码中尝试:
Nodes articles = new Gson().fromJson(result, Nodes.class);
答案 1 :(得分:0)
以下作品:
public static class Nodes {
private List<NodeWrapper> nodes;
public List<NodeWrapper> getNodes() {
return nodes;
}
public void setNodes(List<NodeWrapper> nodes) {
this.nodes = nodes;
}
}
public static class Node {
private String title;
private String body;
public void setTitle(String title) {
this.title = title;
}
public String getTitle() { return title; }
public void setBody(String body) { this.body = body; }
public String getBody() { return body; }
}
public static class NodeWrapper {
private Node node;
public Node getNode() { return node; }
public void setNode(Node node) { this.node = node; }
}
然后做
Nodes nodes = new Gson().fromJson(result, Nodes.class);
我试过这个:
Nodes nodes = new Gson().fromJson("{\"nodes\":[{\"node\":{\"title\":\"esesese\", \"body\":\"hey world whatup\"}}, {\"node\":{\"title\":\"Asdasd\", \"body\":\"asdefasdefe\"}}]}", Nodes.class);
System.out.println(nodes.getNodes().get(1).getNode().getBody());
它是如此迂回的原因是你看看你的JSON:
{
"nodes": [
{
"node": {
"title": "esesese",
"body": "hey world whatup"
}
},
{
"node": {
"title": "Asdasd",
"body": "asdefasdefe"
}
}
]
}
然后nodes
包含具有node
属性的对象列表,该属性具有title
和body
属性 - 它不仅仅是包含a的对象列表title
和body
。因此,你需要一个包装器。