ObjectMapper

来源:互联网 发布:合理利用网络课件ppt 编辑:程序博客网 时间:2024/06/11 14:20

ObjectMapper类是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然。它使用JsonParser和JsonGenerator的实例实现JSON实际的读/写。

类声明

以下是org.codehaus.jackson.map.ObjectMapper类的声明:

public class ObjectMapper   extends ObjectCodec      implements Versioned

嵌套类

S.N.类 & 描述1static class ObjectMapper.DefaultTypeResolverBuilder
定制TypeResolverBuilder,提供所谓的“默认输入”使用类型解析构建器(见enableDefaultTyping()了解详细信息)。2static class ObjectMapper.DefaultTyping
使用enableDefaultTyping()枚举指定什么样的类型(类)默认输入应该使用。

构造函数

S.N.构造函数 & 描述1ObjectMapper()
默认的构造函数,这将构建默认JsonFactory必要时使用StdSerializerProvider作为其SerializerProvider,并BeanSerializerFactory作为其SerializerFactory。2ObjectMapper(JsonFactory jf)
构造使用指定的JsonFactory构建必要的JsonParsers和/或JsonGenerators映射。3ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp)4ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp, SerializationConfig sconfig, DeserializationConfig dconfig)5ObjectMapper(SerializerFactory sf)
不推荐使用。使用其他构造来代替; 注意,可以设置序列化工厂setSerializerFactory(org.codehaus.jackson.map.SerializerFactory)

继承的方法

这个类继承了以下类方法:

  • java.lang.Object

ObjectMapper示例


选择使用任何编辑器创建以下java程序在 C:/> Jackson_WORKSPACE

File: JacksonTester.java

import java.io.IOException;import org.codehaus.jackson.JsonParseException;import org.codehaus.jackson.map.JsonMappingException;import org.codehaus.jackson.map.ObjectMapper;import org.codehaus.jackson.map.SerializationConfig;public class JacksonTester {   public static void main(String args[]){      ObjectMapper mapper = new ObjectMapper();      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";      //map json to student      try {         Student student = mapper.readValue(jsonString, Student.class);         System.out.println(student);         mapper.enable(SerializationConfig.Feature.INDENT_OUTPUT);         jsonString = mapper.writeValueAsString(student);         System.out.println(jsonString);      } catch (JsonParseException e) {         e.printStackTrace();      } catch (JsonMappingException e) {         e.printStackTrace();      } catch (IOException e) {         e.printStackTrace();      }   }}class Student {   private String name;   private int age;   public Student(){}   public String getName() {      return name;   }   public void setName(String name) {      this.name = name;   }   public int getAge() {      return age;   }   public void setAge(int age) {      this.age = age;   }   public String toString(){      return "Student [ name: "+name+", age: "+ age+ " ]";   }}

验证结果

使用 javac 编译如下类:

C:\Jackson_WORKSPACE>javac JacksonTester.java

现在运行jacksonTester看到的结果:

C:\Jackson_WORKSPACE>java JacksonTester

验证输出

Student [ name: Mahesh, age: 21 ]{  "name" : "Mahesh",  "age" : 21}

1 0
原创粉丝点击