今天在看到项目中有一段代码是将string字符串转化成对象,需要被转化成对象的类加了TypeReference,随即去百度了下。
String resJson = HttpClient.doPost(ParameterManager.getParameterValue("INVOICE_BAIWANG_URL"), JSON.toJSONString(baseEntity));
BaseResponse<InvoiceIssueRes> res = JSON.parseObject(resJson, new TypeReference<BaseResponse<InvoiceIssueRes>>() {});
TypeReference可以明确的指定***反序列化***的类型,
解释下什么是序列化和反序列化:
序列化:把对象转换为字节序列的过程称为对象的序列化。
反序列化:把字节序列恢复为对象的过程称为对象的反序列化。
1.对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地文件中。
2.反序列化就是客户端从文件中或网络上获得序列化后的对象字节流后,根据字节流中所保存的对象状态及描述信息,通过反序列化重建对象。(注意:反序列化的过程(从文件–>对象的过程),不是new出来新对象,然后对其进行赋值的。在反序列化的时候,既不会为成员初赋值,也不会执行构造函数)。