1ObjectMapper、SimpleModule、JsonNode三个类解释 2ObjectMapper类的writeValueAsString、valueToTree、readTree等方法
来源:互联网 发布:win8.1配置java环境 编辑:程序博客网 时间:2024/05/20 00:15
1ObjectMapper、SimpleModule、JsonNode三个类解释
1)ObjectMapper类是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然。http://www.yiibai.com/jackson/jackson_objectmapper.html
2)JsonNode类是Jackson库的一个类,该类可以很容易的操作Json格式的数据,如①获取某个简单json串中某个key的值②获取某个层层嵌套的json串中某个key的值
3)SimpleModule,在自定义序列化时,才用得到。http://jackyrong.iteye.com/blog/2005323
jackson中自定义处理序列化和反序列化
- 博客分类:
- JAVA相关
先来看下如何自定义把某个对象序列化为json:
先是对象:
- public class User {
- public int id;
- public String name;
- }
- public class Item {
- public int id;
- public String itemName;
- public User owner;
- }
JACKSON一般的使用很容易,如;
Item myItem = new Item(1, "theItem", new User(2, "theUser"));
String serialized = new ObjectMapper().writeValueAsString(myItem);
结果为:
{
"id": 1,
"itemName": "theItem",
"owner": {
"id": 2,
"name": "theUser"
}
}
如果要输出为如下的样子,比如;
{
"id": 25,
"itemName": "FEDUfRgS",
"owner": 15
}
则要自定义了,要继承JsonSerializer类,如下:
- public class ItemSerializer extends JsonSerializer<Item> {
- @Override
- public void serialize(Item value, JsonGenerator jgen, SerializerProvider provider)
- throws IOException, JsonProcessingException {
- jgen.writeStartObject();
- jgen.writeNumberField("id", value.id);
- jgen.writeStringField("itemName", value.itemName);
- jgen.writeNumberField("owner", value.owner.id);
- jgen.writeEndObject();
- }
- }
然后
- Item myItem = new Item(1, "theItem", new User(2, "theUser"));
- ObjectMapper mapper = new ObjectMapper();
- SimpleModule module = new SimpleModule();
- module.addSerializer(Item.class, new ItemSerializer());
- mapper.registerModule(module);
- String serialized = mapper.writeValueAsString(myItem);
看,相当复杂,然后看有无办法简单点,其实是有的哦;方法为:
- @JsonSerialize(using = ItemSerializer.class)
- public class Item {
- ...
- }
就是使用注解@JsonSerialize,然后:
- Item myItem = new Item(1, "theItem", new User(2, "theUser"));
- String serialized = new ObjectMapper().writeValueAsString(myItem);
2ObjectMapper类的writeValueAsString、valueToTree、readTree等方法
ObjectMapper mapper = new ObjectMapper();
String jsonStr=mapper.writeValueAsString(A);//A是任何一个自定的java类,或者是java类库的类如map //得到的是一个json格式的String
JsonNode jn=mapper.valueToTree(B);//B是任何一个自定的java类,或者是java类库的类如map //得到的是一个JsonNode类型(这个是Jackson框架jar包的一个类型)
JsonNode jn=mapper.readTree(C);//C是一个json格式String。 //得到的是一个JsonNode类型(这个是Jackson框架jar包的一个类型)
List list=mapper.readValue(D,List.class);//D是一个json格式String。 //得到的是一个List类型。
问:我怎么记住,每个方法得到的是什么?
记忆技巧:方法的最末的单词(即标红的位置)意思是什么,得到的就是什么。两者一样。
- 1ObjectMapper、SimpleModule、JsonNode三个类解释 2ObjectMapper类的writeValueAsString、valueToTree、readTree等方法
- Jackson ObjectMapper类
- ObjectMapper
- ObjectMapper
- ObjectMapper
- Android进步之十四:使用jackon的ObjectMapper的writeValueAsString方法可以把java对象转化成json字符串
- java中Jackson库的ObjectMapper类
- Jackson的ObjectMapper类简单使用
- org.codehaus.jackson.map包下的ObjectMapper类源码
- ObjectMapper把Json转换为复杂的实体类
- ObjectMapper的使用举例2 ThemeRecipe.swift
- 摘抄的ObjectMapper用法
- ObjectMapper 的一个坑
- objectmapper的转化问题
- ObjectMapper JSON的 处理
- ObjectMapper--Jackson包中重要的Json转化方法
- ObjectMapper框架的探索学习
- Mybatis和objectMapper的问题
- Socket编程—Client、Server通信
- .gitignore文件配置
- 急需大神指导!DevExpress为何这么火。
- 理解字节序:大端模式、小端模式
- 理解Docker容器端口映射
- 1ObjectMapper、SimpleModule、JsonNode三个类解释 2ObjectMapper类的writeValueAsString、valueToTree、readTree等方法
- Velocity 模板语法
- 【备注】【C18】《名家讲坛-JAVA开发实战经典》 PDF 下载
- 4-1 Topological Sort (9分)
- linux的目录以及作用
- HDU 1016 Prime Ring Problem
- 为RecyclerView打造通用Adapter 让RecyclerView更加好用
- 第十二周 求两数的最大公约数
- 盗版毕加索