[英]Android Json/Gson issue
我对这个json有困难。
{"directory": {
"employees": {"employee": [
{
"field": [
{
"content": "Charlotte Abbott",
"id": "displayName"
},
{
"content": "Charlotte",
"id": "firstName"
},
我将它投射到一个看起来像这样的类
@SerializedName("directory")
public Directory directory;
public class Directory
{
@SerializedName("employees")
public Employees employees;
}
public class Employees
{
@SerializedName("employee")
public List<Employee> employee;
}
public class Employee
{
@SerializedName("field")
public List<Fields> fields;
@SerializedName("id")
public String employeeId;
}
public class Fields
{
@SerializedName("content")
public String content;
@SerializedName("id")
public String label;
}
并且在序列化时插入数据并未达到所有变量。 相反,我得到所有空值。 然而,我得到了正确数量(数量)的目录对象,所以我知道它到达那么远。 任何人都对我在这里做错了什么有所了解? json是这样的,我没有设计它,但它是如何使用它。
您必须使用相当奇怪的数据结构,但就是这样。
public class App {
public static void main(String[] args) {
Gson gson = new Gson();
String jsonString = "{\"directory\": {\"employees\": {\"employee\": [{\"field\": [{\"content\": \"Charlotte Abbott\",\"id\": \"displayName\"},{\"content\": \"Charlotte\",\"id\": \"firstName\"}]}]}}}";
Wrapper obj = (Wrapper) gson.fromJson(jsonString, Wrapper.class);
System.out.println(obj.getDirectory().getEmployees().getEmployeeList()
.get(0).getFieldList().get(0).getContent());
}
}
您需要一个Wrapper
类来包装Directory
。
public class Wrapper {
private Directory directory;
public Directory getDirectory() {
return directory;
}
public void setDirectory(Directory directory) {
this.directory = directory;
}
}
Directory
类。
public class Directory {
@SerializedName("employees")
private Employees employees;
public Employees getEmployees() {
return employees;
}
public void setEmployees(Employees employees) {
this.employees = employees;
}
}
Employees
类:
public class Employees {
@SerializedName("employee")
private List<Employee> employeeList;
public List<Employee> getEmployeeList() {
return employeeList;
}
public void setEmployeeList(List<Employee> employeeList) {
this.employeeList = employeeList;
}
}
Employee
类:
public class Employee {
@SerializedName("field")
private List<Field> fieldList;
public List<Field> getFieldList() {
return fieldList;
}
public void setFieldList(List<Field> fieldList) {
this.fieldList = fieldList;
}
}
Field
课:
public class Field {
@SerializedName("content")
private String content;
@SerializedName("id")
private String id;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
使用GSON示例在此处查看JSON到Java对象: http : //java.sg/parsing-a-json-string-into-an-object-with-gson-easily/
所以这就是它如何运作,我说得对,我只是在它被放入后没有正确验证数据,所以我失去了它,因为无法分配它并存储它以供以后访问。
它很丑,但地图看起来像这样
DIRECTORY obj
{
EMPLOYEES obj
{
List employee []
{
int id
List fields[]
{
content
id
{
{
{
{
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.