JSON-B支持集合和通用集合处理。为了进行适当的反序列化,需要在反序列化期间将所得对象的运行时类型传递给JSON-B。可以按照以下所示的方法来完成。
import java.util.ArrayList;
import java.util.List;
import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;
public class DogMain2 {
public static void main(String args[]) {
Dog falco = new Dog();
falco.name = "Falco";
falco.age = 4;
falco.bitable = false;
Dog cassidy = new Dog();
cassidy.name = "cassidy";
cassidy.age = 4;
cassidy.bitable = false;
// List of dogs
List dogs = new ArrayList();
dogs.add(falco);
dogs.add(cassidy);
// Create Jsonb and serialize
Jsonb jsonb = JsonbBuilder.create();
String result = jsonb.toJson(dogs);
System.out.println(result);
// Deserialize back
dogs = jsonb.fromJson(result, ArrayList.class);
for(int i = 0;i < dogs.size(); i ++){
System.out.println(dogs.get(i));
}
}
}
import java.util.ArrayList;
import java.util.List;
import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;
public class DogMain2 {
public static void main(String args[]) {
Dog falco = new Dog();
falco.name = "Falco";
falco.age = 4;
falco.bitable = false;
Dog cassidy = new Dog();
cassidy.name = "cassidy";
cassidy.age = 4;
cassidy.bitable = false;
// List of dogs
List<Dog> dogs = new ArrayList<>();
dogs.add(falco);
dogs.add(cassidy);
// Create Jsonb and serialize
Jsonb jsonb = JsonbBuilder.create();
String result = jsonb.toJson(dogs);
System.out.println(result);
// Deserialize back
dogs = jsonb.fromJson(result, new ArrayList<Dog>() {
}.getClass().getGenericSuperclass());
for (int i = 0; i < dogs.size(); i++) {
System.out.println(dogs.get(i).name);
}
}
}