Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用gson反序列化javabeans对象_Android_Gson - Fatal编程技术网

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;
}