栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

举例讲解Java的Jackson库中ObjectMapper类的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

举例讲解Java的Jackson库中ObjectMapper类的使用

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

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

public class ObjectMapper
  extends ObjectCodec
   implements Versioned

嵌套类

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

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

这个类继承了以下类方法:
java.lang.Object

例子
测试类基本代码如下

 
 
public class Jackson { 
   
  public static JsonGenerator jsonGenerator = null; 
  private static ObjectMapper mapper = new ObjectMapper(); 
  public static void main(String[] args) { 
    Student student = new Student(); 
    student.setIsstudent(true); 
    student.setUid(1000); 
    student.setUname("xiao liao"); 
    student.setUpwd("123"); 
    student.setNumber(12); 
     
    Map stuMap = new HashMap(); 
    stuMap.put("1", student); 
    stuMap.put("2", student); 
     
    List stuList = new ArrayList(); 
    List stuList1 = new ArrayList(); 
    stuList1.add(student); 
    student= new Student(); 
    student.setIsstudent(false); 
    student.setUid(200); 
    student.setUname("xiao mi"); 
    stuList1.add(student); 
     
    stuList.add(student); 
    stuList.add("xiao xin"); 
    stuList.add("xiao er"); 
    stuList.add(stuMap); 
     
    //readJson2List(); 
    try { 
      //readJson2Array(); 
      //writeArray2Json(array); 
      //writeJson2List(); 
      //writeEntity2Json(student); 
      writeJson2Entity(); 
      //writeMap2Json(stuMap); 
      //writeList2Json(stuList1); 

    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
  } 
    
   public static void writeEntity2Json(Object object) throws IOException { 
      mapper.writevalue( new File("D:\developSoft\aaadowload\testjson1\lib\aa.txt"),object ); 
      mapper.writevalue( System.out,object ); 
      
   } 
    
   public static void writeArray2Json(Object object) throws IOException { 
      
     // writevalue具有和writeObject相同的功能 
     mapper.writevalue( new File("D:\developSoft\aaadowload\testjson1\lib\aa.txt"),object ); 
     mapper.writevalue(System.out,object ); 
      
   } 
    
   public static void writeMap2Json(Object object) throws IOException { 
      
     System.out.println("使用ObjectMapper-----------"); 
     // writevalue具有和writeObject相同的功能 
     System.out.println("==>"+mapper.writevalueAsString(object)); 
     mapper.writevalue( new File("D:\developSoft\aaadowload\testjson1\lib\aamap.txt"),object ); 
     mapper.writevalue( System.out , object ); 
   } 
    
   public static void writeList2Json(Object object) throws IOException { 
     System.out.println("==>"+mapper.writevalueAsString(object)); 
     mapper.writevalue( new File("D:\developSoft\aaadowload\testjson1\lib\aamap.txt"),object ); 
     mapper.writevalue( System.out , object ); 
   } 
    
   public static void writeJson2Entity() throws IOException { 
     System.out.println("json串转换成entity-------------"); 
//    File file = new File("D:\developSoft\aaadowload\testjson1\lib\aa.txt"); 
//    FileInputStream inputStream = new FileInputStream(file); 
//    Student student = mapper.readValue(inputStream,Student.class); 
//    System.out.println(student.toString()); 
     //漂亮输出 
     //mapper.defaultPrettyPrintingWriter().writevalueAsString(value); 
   
     String json = "{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true}"; 
     Student student1 = mapper.readValue(json,Student.class); 
     System.out.println("json2:"+student1.toString()); 
   } 
    
   public static void writeJson2List() throws IOException { 
     System.out.println("json串转换成entity-------------"); 
     File file = new File("D:\developSoft\aaadowload\testjson1\lib\aa.txt"); 
     FileInputStream inputStream = new FileInputStream(file); 
     Student student = mapper.readValue(inputStream,Student.class); 
     System.out.println(student.toString()); 
      
     String json = "[{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true},{"uid":200,"uname":"xiao mi","upwd":null,"number":0.0,"isstudent":false}]"; 
     List> s= mapper.readValue(json,List.class); 
     for (int i = 0; i < s.size(); i++) { 
linkedHashMap link = s.get(i); 
Set key = link.keySet(); 
for (Iterator iterator = key.iterator(); iterator.hasNext();) { 
 String string = (String) iterator.next(); 
 System.out.println(string+"==>"+link.get(string)); 
  
      } 
System.out.println("json:"+i+""+s.get(i).toString()); 

    } 
   } 
    
   public static void readJson2List() { 
    String json = "[{"uid":1,"uname":"www","number":234,"upwd":"456"}," 
     + "{"uid":5,"uname":"tom","number":3.44,"upwd":"123"}]"; 
    try { 
    List> list = mapper.readValue( 
     json, List.class); 
    System.out.println(list.size()); 
    for (int i = 0; i < list.size(); i++) { 
     Map map = list.get(i); 
     Set set = map.keySet(); 
     for (Iterator it = set.iterator(); it.hasNext();) { 
     String key = it.next(); 
     System.out.println(key + ":" + map.get(key)); 
     } 
    } 
    } catch (JsonParseException e) { 
    e.printStackTrace(); 
    } catch (JsonMappingException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
   } 
    
   public static void readJson2Array() { 
     String json = "[{"uid":1,"uname":"www","number":234,"upwd":"456"}," 
+ "{"uid":5,"uname":"tom","number":3.44,"upwd":"123"}]"; 
     try { 
Student[] students = mapper.readValue(json, Student[].class); 
for (Student student : students) { 
 System.out.println(">"+student.toString()); 
      } 
     } catch (JsonParseException e) { 
e.printStackTrace(); 
     } catch (JsonMappingException e) { 
e.printStackTrace(); 
     } catch (IOException e) { 
e.printStackTrace(); 
     } 
   } 
 
} 



打印结果 :

串转换成entity-------------
json2:uid=1000,name=xiao liao,upwd=123,number=12.0,isStudent=true

writeMap2Json -----------
{"2":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true},"1":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true}}

readJson2Array------------------
>uid=1,name=www,upwd=456,number=234.0,isStudent=false
>uid=5,name=tom,upwd=123,number=3.44,isStudent=false
writeMap2Json -----------
{"2":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true},"1":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true}}

大家逐个自己试试吧  ,上面也是我的测试代码

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号