程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 舉例講授Java的Jackson庫中ObjectMapper類的應用

舉例講授Java的Jackson庫中ObjectMapper類的應用

編輯:關於JAVA

舉例講授Java的Jackson庫中ObjectMapper類的應用。本站提示廣大學習愛好者:(舉例講授Java的Jackson庫中ObjectMapper類的應用)文章只能為提供參考,不一定能成為您想要的結果。以下是舉例講授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

例子
測試類根本代碼以下

/* 
 * @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(數組轉換成json數組) 
   * @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}}

年夜家逐一本身嘗嘗吧  ,下面也是我的測試代碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved