欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

舉例講解Java的Jackson庫中ObjectMapper類的使用

 更新時間:2016年01月13日 12:03:45   投稿:goldensun  
這篇文章主要介紹了舉例講解Java的Jackson庫中ObjectMapper類的使用,Jackson庫通常被用來實現(xiàn)Java的對象和JSON之間的轉換功能,需要的朋友可以參考下

ObjectMapper類是Jackson庫的主要類。它提供一些功能將轉換成Java對象匹配JSON結構,反之亦然。它使用JsonParser和JsonGenerator的實例實現(xiàn)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()枚舉指定什么樣的類型(類)默認輸入應該使用。

構造函數(shù)
S.N. 構造函數(shù) & 描述
1 ObjectMapper()//默認的構造函數(shù),這將構建默認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

例子
測試類基本代碼如下

/* 
 * @project java 
 * @package 
 * @file Jackson.java 
 * @version 1.0 

 */ 
 
public class Jackson { 
  /* 
   * 
   * Class Descripton goes here. 
   * 
   * @class Jackson 
   * @version 1.0 
   */ 
  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<String, Student> stuMap = new HashMap<String, Student>(); 
    stuMap.put("1", student); 
    stuMap.put("2", student); 
     
    List<Object> stuList = new ArrayList<Object>(); 
    List<Student> stuList1 = new ArrayList<Student>(); 
    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(); 
    } 
  } 
   /** 
   * 
   * <code>writeEntity2Json</code> 
   * @description: TODO(實體類轉換成json) 
   * @param object 
   * @throws IOException 
   */ 
   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 ); 
      
   } 
   /** 
   * 
   * <code>writeArray2Json</code> 
   * @description: TODO(數(shù)組轉換成json數(shù)組) 
   * @param object 
   * @throws IOException 
   */ 
   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 ); 
      
   } 
   /** 
   * 
   * <code>writeMap2Json</code> 
   * @description: TODO(map對象轉換成json對象) 
   * @param object 
   * @throws IOException 
   * @since  2011-11-8   廖益平 
   */ 
   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 ); 
   } 
   /** 
   * 
   * <code>writeList2Json</code> 
   * @description: TODO(list轉換成json) 
   * @param object 
   * @throws IOException 
   */ 
   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 ); 
   } 
   /** 
   * 
   * <code>writeJson2Entity</code> 
   * @description: TODO(json轉換成實體) 
   * @throws IOException 
   */ 
   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()); 
   } 
   /** 
   * 
   * <code>writeJson2List</code> 
   * @description: TODO(json專程list對象) 
   * @throws IOException 
   */ 
   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<LinkedHashMap<String, Object>> s= mapper.readValue(json,List.class); 
     for (int i = 0; i < s.size(); i++) { 
       LinkedHashMap<String, Object> link = s.get(i); 
       Set<String> 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()); 
       
    } 
   } 
   /** 
    * JSON轉換為List對象 
    */ 
   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<LinkedHashMap<String, Object>> list = mapper.readValue( 
     json, List.class); 
    System.out.println(list.size()); 
    for (int i = 0; i < list.size(); i++) { 
     Map<String, Object> map = list.get(i); 
     Set<String> set = map.keySet(); 
     for (Iterator<String> 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(); 
    } 
   } 
   /** 
    * JSON轉換為List對象 
    */ 
   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}}

大家逐個自己試試吧  ,上面也是我的測試代碼

相關文章

  • Java實現(xiàn)簡單LRU緩存機制的方法

    Java實現(xiàn)簡單LRU緩存機制的方法

    這篇文章主要介紹了Java實現(xiàn)簡單LRU緩存機制的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Struts2學習教程之輸入校驗示例詳解

    Struts2學習教程之輸入校驗示例詳解

    這篇文章主要給大家介紹了關于Struts2學習教程之輸入校驗的相關資料,文中通過示例介紹的非常詳細,對大家學習或者使用struts2具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-05-05
  • SpringCloud微服務熔斷器Hystrix使用詳解

    SpringCloud微服務熔斷器Hystrix使用詳解

    這篇文章主要介紹了Spring Cloud Hyxtrix的基本使用,它是Spring Cloud中集成的一個組件,在整個生態(tài)中主要為我們提供服務隔離,服務熔斷,服務降級功能,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Java面向對象基礎知識之封裝,繼承,多態(tài)和抽象

    Java面向對象基礎知識之封裝,繼承,多態(tài)和抽象

    這篇文章主要介紹了Java面向對象的封裝,繼承,多態(tài)和抽象,文中有非常詳細的代碼示例,對正在學習java基礎的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-11-11
  • Java使用GZIP壓縮導致HTTP請求返回亂碼問題解決

    Java使用GZIP壓縮導致HTTP請求返回亂碼問題解決

    這篇文章主要為大家介紹了Java壓縮GZIP導致HTTP請求返回亂碼問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Spring Cloud項目前后端分離跨域的操作

    Spring Cloud項目前后端分離跨域的操作

    這篇文章主要介紹了Spring Cloud項目前后端分離跨域的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 詳解Nacos中注冊中心和配置中心的實現(xiàn)

    詳解Nacos中注冊中心和配置中心的實現(xiàn)

    Spring?Cloud?Alibaba?是阿里巴巴提供的一站式微服務開發(fā)解決方案。而?Nacos?作為?Spring?Cloud?Alibaba?的核心組件之一,提供了兩個非常重要的功能:注冊中心和配置中心,我們今天來了解和實現(xiàn)一下二者
    2022-08-08
  • javaweb實現(xiàn)app掃碼登錄功能

    javaweb實現(xiàn)app掃碼登錄功能

    這篇文章主要為大家詳細介紹了javaweb實現(xiàn)app掃碼登錄功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • SpringBoot中整合MyBatis-Plus的方法示例

    SpringBoot中整合MyBatis-Plus的方法示例

    這篇文章主要介紹了SpringBoot中整合MyBatis-Plus的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Spring聲明式事務配置使用詳解

    Spring聲明式事務配置使用詳解

    這篇文章主要介紹了在spring注解中,使用聲明式事務,需要用到兩個核心的注解:@Transactional注解和@EnableTransactionManagement注解。將@Transactional注解加在方法上,@EnableTransactionManagement注解加在配置類上
    2022-08-08

最新評論