//序列化

public class AuthTypeEnumListJsonSerializer extends JsonSerializer<List> {

@Override

public void serialize(List list, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {

int[] integers = new int[list.size()];

for (int i = 0; i < list.size(); i++) {

integers[i] = list.get(i).getCode();

}

jsonGenerator.writeArray(integers, 0, integers.length);

}

}

//反序列化

public class AuthTypeListEnumJsonDeserializer extends JsonDeserializer<List> {

@Override

public List deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException, IllegalArgumentException {

ArrayNode treeNode = jsonParser.readValueAsTree();

Field field;

try {

field = jsonParser.getCurrentValue().getClass().getDeclaredField(jsonParser.currentName());

} catch (NoSuchFieldException e) {

return null;

}

field.setAccessible(true);

if (!field.getType().equals(List.class)) {

return null;

}

    List<AuthTypeEnum> result = new ArrayList<>();
Iterator<JsonNode> elements = treeNode.elements();
while (elements.hasNext()) {
Integer appCase = elements.next().asInt();
AuthTypeEnum anEnum = AuthTypeEnum.codeFrom(appCase);
result.add(anEnum);
}
if (result.isEmpty()) {
return null;
} else {
return result;
} }

}

`

枚举类list序列化与反序列化的更多相关文章

  1. 初识序列化和反序列化,使用BinaryFormatter类、ISerializable接口、XmlSerializer类进行序列化和反序列化

    序列化是将对象转换成字节流的过程,反序列化是把字节流转换成对象的过程.对象一旦被序列化,就可以把对象状态保存到硬盘的某个位置,甚至还可以通过网络发送给另外一台机器上运行的进程.本篇主要包括: ● 使用 ...

  2. 自定义fastjson对枚举类型的序列化及反序列化过程

    通常,fastjson在序列化及反序列化枚举时,一般以下几种策略: 1).根据枚举的name值序列化及反序列化(默认) 2).根据枚举的ordinal序列化及反序列化 3).根据枚举的toString ...

  3. .Net类的序列化和反序列化 - 进阶者系列 - 学习者系列文章

    今天看了下以前的一个工具的代码,其中涉及到.NET类的序列化和反序列化问题,所以就写一下. 这里说一下.NET类序列化的好处..NET类在序列化之前只是一个相对狭义的类.通过序列化,能够更好的保存该类 ...

  4. 【json】与【枚举】的序列化和反序列化

    参考:Jackson – Deserialization from json to Java enums 问题描述 java中使用枚举时,如果涉及到restful调用,不可避免会涉及到枚举的序列化和反 ...

  5. java基础知识回顾之javaIO类--java序列化和反序列化

    /** *  * 一:理解序列化反序列化及其应用 * 序列化:把堆内存的对象转化成字节流的过程. * 反序列化:把字节流序列恢复重构成对象的过程. * 对象的序列化的用途:1.把对象的字节序列持久化, ...

  6. C#中使用JavaScriptSerializer类实现序列化与反序列化

    1.添加引用 JavaScriptSerializer类的使用需要引用System.Web.Extensions.dll文件,根据路径:C:\Program Files (x86)\Reference ...

  7. C# 类的序列化和反序列化

    序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新创 ...

  8. JsonHelper类(序列化和反序列化辅助类)

       1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Web; ...

  9. 用C#实现XML和实体类之间序列化和反序列化相互转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  10. java-IO处理类的序列化与反序列化

    package TestIo; import java.io.*; /** * 序列化 * * * 对象序列化 * * 一 创建对象 需要说明,想序列化的对象一定要是实现Serivalizable接口 ...

随机推荐

  1. uniapp打包app出现HTML5+ Runtime

    在manifest.json->源码视图的 "app-plus"下面添加: "app-plus" : { "compatible" : ...

  2. Beaver解析代码反向生成语法文件

    背景 Beaver是一款LALR的语法生成工具,现在有一个反编译项目的需求,需要将Beaver语法文件编译后的代码反向生成语法文件的需求,不去评论需求多么傻逼,直接干 设计 flowchart 语法文 ...

  3. CSP-S T3函数调用

    函数是各种编程语言中一项重要的概念,借助函数,我们总可以将复杂的任务分解成一个个相对简单的子任务,直到细化为十分简单的基础操作,从而使代码的组织更加严密.更加有条理.然而,过多的函数调用也会导致额外的 ...

  4. python实现web应用程序(1)虚拟环境与Django

    前言 在这个系列博客中,我将使用python实现一个名为"OI笔记"的项目. 1 建立项目目录 第一步,我们先为自己的项目建立一个目录. 首先,打开终端. win+r键,然后输入c ...

  5. Impala 学习笔记

    VALUES Statement | 6.3.x | Cloudera Documentation SELECT now() as date_DES UNION ALL SELECT trunc(no ...

  6. Odoo12 + Windows+Visual Studio Code环境安装

    参考 https://www.cnblogs.com/ecprodoo/p/13195748.html 1.要用odoo12需要安装以下几个软件 (1)Python 3.7, Python 3.8支持 ...

  7. python func_timeout 设置函数超时退出

    使用func_timeout设置函数超时退出,使用func_set_timeout装饰器和func_timeout方法 from func_timeout import func_set_timeou ...

  8. git push 时发生的error: failed to push some refs to

    - 先再一个新建的一个文件夹里面git clone +你要克隆的远程仓库 - 然后把克隆下来的.git文件夹复制到你的本地仓库,然后再commit-git add, - git push 就可以提交成 ...

  9. oracle中将同一组的数据拼接(转)

    需要用wm_concat函数来实现. 如目前在emp表中查询数据如下: 要按照deptno相同的将ename以字符串形式合并,可用如下语句: 1 select deptno,wm_concat(ena ...

  10. Centos 7.5 MySql的安装和配置

    一.安装 三个步骤: wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpmyum -y ins ...