我正在尝试此代码,但无法正常工作
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());
}
}
}
看到这段代码需要一个人数组,但不能正常工作,应该向我展示javabens对象
答案 0 :(得分:0)
我猜测问题在于将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;
}