Android 使用gson反序列化javabeans对象
我正在尝试这个代码,但不起作用Android 使用gson反序列化javabeans对象,android,gson,Android,Gson,我正在尝试这个代码,但不起作用 public class Main { public static void main(String[] args) { list();} private static void list() { Gson gson = new Gson(); String result = "[{\"Person\":{\"id\":\"1\",\"name\":\"Prédio I\"}},{\"Perso
public class Main {
public static void main(String[] args) { list();}
private static void list() {
Gson gson = new Gson();
String result = "[{\"Person\":{\"id\":\"1\",\"name\":\"Prédio I\"}},{\"Person\":{\"id\":\"2\",\"name\":\"Prédio II\"}}]";
Person[] persons = gson.fromJson(result, Person[].class);
System.out.println("Qtde: " + persons.length);
for (Person pe : persons) {
System.out.println("Name: " + pe.getName());
}
}
}
请看,这段代码使用了一个person数组,但不起作用,应该向我显示javabens对象我猜问题在于如何正确地将JSON结构绑定到匹配的Java数据结构。请注意,JSON数组中的每个组件都是一个具有单个属性的对象,名为“Person”,这是一个具有两个属性的对象,分别名为“id”和“name”——JSON数组中的每个组件都不是一个简单的Person对象,而是一个Person包装器对象 下面演示如何将JSON绑定到匹配的Java数据结构
import com.google.gson.Gson;
public class GsonFoo
{
public static void main(String[] args)
{
// [{"Person":{"id":"1","name":"Prédio I"}},{"Person":{"id":"2","name":"Prédio II"}}]
String jsonInput = "[{\"Person\":{\"id\":\"1\",\"name\":\"Prédio I\"}},{\"Person\":{\"id\":\"2\",\"name\":\"Prédio II\"}}]";
PersonWrapper[] persons = new Gson().fromJson(jsonInput, PersonWrapper[].class);
System.out.println("Qtde: " + persons.length);
for (PersonWrapper pw : persons)
{
System.out.println("Name: " + pw.Person.name);
}
// output:
// Qtde: 2
// Name: Prédio I
// Name: Prédio II
}
}
class PersonWrapper
{
Person Person;
}
class Person
{
int id;
String name;
}