json 反序列化数组
Posted on 2020-10-14 11:00 in Java
json 反序列化
泛型的序列化比较简单,和一般对象的序列化没有区别,但是反序列化有一些不同。
jackson
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
List<MyClass> myObjectList = mapper.readValue(jsonInput, new TypeReference<List<MyClass>>(){});
gson
import com.google.gson.Gson;
Gson gson = new Gson();
List<MyClass> myObjectList = gson.fromJson(researchIdStr, new TypeToken<List<MyClass>>(){}.getType());
fastjson
import com.alibaba.fastjson.JSON;
List<MyClass> myObjectList = JSON.parseObject(researchIdStr, new TypeReference<List<MyClass>>(){});
List 的元素还是个泛型
如果 List 的元素还是一个泛型,需要指定具体的子类,见下面
import com.google.gson.Gson;
Gson gson = new Gson();
List<Pair<String, Boolean>> pairList = gson.fromJson(researchIdStr, new TypeToken<List<ImmutablePair<String, Boolean>>>(){}.getType());