我已经看到很多关于如何使用Gson库解析JSON文件的文章,但是它们都使用根元素来进行序列化。因此,在这种情况下,您没有根元素。
示例(persons.json)
public class Person {
private String name;
private int phone;
private String email;
public Person(String name, int phone, String email) {
this.name = name;
this.phone = phone;
this.email = email;
}
JSON文件具有超过1000个对象,如上面所表示的两个。
我定义了一个名为Person的类,例如
Person.java
functions/hello/hello.go
functions/hello2/hello2.go
所以现在,我想使用Gson库获取我的主类的所有信息。没有根元素怎么办?
答案 0 :(得分:1)
您有一个列表<人员>。因此,这可以解决问题:
Type listType = new TypeToken<ArrayList<Person>>(){}.getType();
List<Person> persons = new Gson().fromJson(jsonArray, listType);
或作为数组:
Person[] persons = gson.fromJson(jsonString, Person[].class);
没有在我的PC上尝试过,但应该可以工作。让我知道!
答案 1 :(得分:0)
我相信这个问题已经问过(并回答了)Gson and deserializing an array of objects with arrays in it
import java.io.FileReader;
import java.util.ArrayList;
import com.google.gson.Gson;
public class Foo
{
public static void main(String[] args) throws Exception
{
Gson gson = new Gson();
Person[] myTypes = gson.fromJson(new FileReader("input.json"), Person[].class);
System.out.println(gson.toJson(myTypes));
}
}
public class Person {
String name;
int phone;
String email;
}