<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java學習

    java學習

     

    jackson的序列化和反序列化

    package com.kaishengit.util.jackson;

    import java.io.IOException;
    import java.io.StringWriter;
    import java.io.Writer;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;

    import org.codehaus.jackson.JsonEncoding;
    import org.codehaus.jackson.JsonGenerationException;
    import org.codehaus.jackson.JsonGenerator;
    import org.codehaus.jackson.JsonParseException;
    import org.codehaus.jackson.map.JsonMappingException;
    import org.codehaus.jackson.map.ObjectMapper;
    import org.codehaus.jackson.node.JsonNodeFactory;

    public class JacksonTest {
     private static JsonGenerator jsonGenerator = null;
     private static ObjectMapper objectMapper = null;
     private static AccountBean bean = null;

     static {

      bean = new AccountBean();
      bean.setAddress("china-Guangzhou");
      bean.setEmail("hoojo_@126.com");
      bean.setId(1);
      bean.setName("hoojo");
      objectMapper = new ObjectMapper();
      try {
       jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(
         System.out, JsonEncoding.UTF8);
      } catch (IOException e) {
       e.printStackTrace();
      }

     }

     // public void init() {}

     /*
      * public void destory() { try { if (jsonGenerator != null) {
      * jsonGenerator.flush(); } if (!jsonGenerator.isClosed()) {
      * jsonGenerator.close(); } jsonGenerator = null; objectMapper = null; bean
      * = null; System.gc(); } catch (IOException e) { e.printStackTrace(); } }
      */
     // JavaBean(Entity/Model)轉換成JSON
     public static void writeEntityJSON() {
      try {
       
       System.out.println("jsonGenerator"); // writeObject可以轉換java對象,eg:JavaBean/Map/List/Array等
       jsonGenerator.writeObject(bean);

       System.out.println();
       System.out.println("ObjectMapper"); // writeValue具有和writeObject相同的功能
       StringWriter strWriter = new StringWriter(); 
       objectMapper.writeValue(strWriter, bean);
       String s = strWriter.toString();
       System.out.println("-----------------------");
       System.out.println(s);
       
      } catch (IOException e) {
       e.printStackTrace();
      }
     }

     // 將Map集合轉換成Json字符串
     public static void writeMapJSON() {
      try {
       Map<String, Object> map = new HashMap<String, Object>();
       map.put("name", bean.getName());
       map.put("account", bean);
       bean = new AccountBean();
       bean.setAddress("china-Beijin");
       bean.setEmail("hoojo@qq.com");
       map.put("account2", bean);
       System.out.println("jsonGenerator");
       jsonGenerator.writeObject(map);
       System.out.println("");
       System.out.println("objectMapper");
       Writer strWriter = new StringWriter(); 
       objectMapper.writeValue(strWriter, map);
       System.out.println(strWriter.toString());
      } catch (IOException e) {
       e.printStackTrace();
      }
     }

     // 將List集合轉換成json
     public static void writeListJSON() {
      try {
       List<AccountBean> list = new ArrayList<AccountBean>();
       list.add(bean);
       bean = new AccountBean();
       bean.setId(2);
       bean.setAddress("address2");
       bean.setEmail("email2");
       bean.setName("haha2");
       list.add(bean);
       System.out.println("jsonGenerator"); // list轉換成JSON字符串
       jsonGenerator.writeObject(list);
       System.out.println();
       System.out.println("ObjectMapper"); // 用objectMapper直接返回list轉換成的JSON字符串
       System.out.println("1###" + objectMapper.writeValueAsString(list));
       System.out.print("2###"); // objectMapper list轉換成JSON字符串
       Writer strWriter = new StringWriter(); 
       objectMapper.writeValue(strWriter, list);
       System.out.println(strWriter.toString());
      } catch (IOException e) {
       e.printStackTrace();
      }
     }

     public static void writeOthersJSON() {
      try {
       String[] arr = { "a", "b", "c" };
       System.out.println("jsonGenerator");
       String str = "hello world jackson!"; // byte
       jsonGenerator.writeBinary(str.getBytes()); // boolean
       jsonGenerator.writeBoolean(true); // null
       jsonGenerator.writeNull(); // float
       jsonGenerator.writeNumber(2.2f); // char
       jsonGenerator.writeRaw("c"); // String
       jsonGenerator.writeRaw(str, 5, 10); // String
       jsonGenerator.writeRawValue(str, 5, 5); // String
       jsonGenerator.writeString(str);
       jsonGenerator.writeTree(JsonNodeFactory.instance.POJONode(str));
       System.out.println(); // Object
       jsonGenerator.writeStartObject();// {
       jsonGenerator.writeObjectFieldStart("user");// user:{
       jsonGenerator.writeStringField("name", "jackson");// name:jackson
       jsonGenerator.writeBooleanField("sex", true);// sex:true
       jsonGenerator.writeNumberField("age", 22);// age:22
       jsonGenerator.writeEndObject();// }
       jsonGenerator.writeArrayFieldStart("infos");// infos:[
       jsonGenerator.writeNumber(22);// 22
       jsonGenerator.writeString("this is array");// this is array
       jsonGenerator.writeEndArray();// ]
       jsonGenerator.writeEndObject();// }
       AccountBean bean = new AccountBean();
       bean.setAddress("address");
       bean.setEmail("email");
       bean.setId(1);
       bean.setName("haha");
       // complex Object
       jsonGenerator.writeStartObject();// {
       jsonGenerator.writeObjectField("user", bean);// user:{bean}
       jsonGenerator.writeObjectField("infos", arr);// infos:[array]
       jsonGenerator.writeEndObject();// }
      } catch (Exception e) {
       e.printStackTrace();
      }
     }

     // 將json字符串轉換成JavaBean對象
     public static void readJson2Entity() {
      String json = "{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}";
      try {
       AccountBean acc = objectMapper.readValue(json, AccountBean.class);
       System.out.println(acc.getName());
       System.out.println(acc);
      } catch (JsonParseException e) {
       e.printStackTrace();
      } catch (JsonMappingException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
     }

     // 將json字符串轉換成List<Map>集合
     public static void readJson2List() {
      String json = "[{\"address\": \"address2\",\"name\":\"haha2\",\"id\":2,\"email\":\"email2\"},"
        + "{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}]";
      try {
       List<LinkedHashMap<String, Object>> list = objectMapper.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字符串轉換成Array數組
     public static void readJson2Array() {
      String json = "[{\"address\": \"address2\",\"name\":\"haha2\",\"id\":2,\"email\":\"email2\"},"
        + "{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}]";
      try {
       AccountBean[] arr = objectMapper.readValue(json,
         AccountBean[].class);
       System.out.println(arr.length);
       for (int i = 0; i < arr.length; i++) {
        System.out.println(arr[i]);
       }
      } catch (JsonParseException e) {
       e.printStackTrace();
      } catch (JsonMappingException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
     }

     // Json字符串轉換成Map集合
     public static void readJson2Map() {
      String json = "{\"success\":true,\"A\":{\"address\": \"address2\",\"name\":\"haha2\",\"id\":2,\"email\":\"email2\"},"
        + "\"B\":{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}}";
      try {
       Map<String, Map<String, Object>> maps = objectMapper.readValue(
         json, Map.class);
       System.out.println(maps.size());
       Set<String> key = maps.keySet();
       Iterator<String> iter = key.iterator();
       while (iter.hasNext()) {
        String field = iter.next();
        System.out.println(field + ":" + maps.get(field));
       }
      } catch (JsonParseException e) {
       e.printStackTrace();
      } catch (JsonMappingException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
     }

     /*
      * public void writeObject2Xml() { //stax2-api-3.0.2.jar
      * System.out.println("XmlMapper"); XmlMapper xml = new XmlMapper(); try {
      * //javaBean轉換成xml //xml.writeValue(System.out, bean); StringWriter sw =
      * new StringWriter(); xml.writeValue(sw, bean);
      * System.out.println(sw.toString()); //List轉換成xml List<AccountBean> list =
      * new ArrayList<AccountBean>(); list.add(bean); list.add(bean);
      * System.out.println(xml.writeValueAsString(list)); //Map轉換xml文檔
      * Map<String, AccountBean> map = new HashMap<String, AccountBean>();
      * map.put("A", bean); map.put("B", bean);
      * System.out.println(xml.writeValueAsString(map)); } catch
      * (JsonGenerationException e) { e.printStackTrace(); } catch
      * (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) {
      * e.printStackTrace(); }}
      */

     public static void main(String[] args) {
       JacksonTest.writeEntityJSON();
      // JacksonTest.writeMapJSON();
      // JacksonTest.writeListJSON();
      // JacksonTest.writeOthersJSON();
      // JacksonTest.readJson2Entity();
      // JacksonTest.readJson2List();
      // JacksonTest.readJson2Array();
      //JacksonTest.readJson2Map();
     }

    }

    posted on 2013-09-10 15:19 楊軍威 閱讀(4888) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 小小影视日本动漫观看免费| 日韩毛片免费无码无毒视频观看| 国产伦精品一区二区三区免费迷 | www国产亚洲精品久久久日本| 亚洲色大成网站www| 黄网址在线永久免费观看| 亚洲熟妇无码AV不卡在线播放| 午夜免费福利在线观看| 久久精品亚洲日本波多野结衣| 天天摸夜夜摸成人免费视频| 亚洲AV无码精品国产成人| 国产一区二区三区在线免费观看 | 中国国语毛片免费观看视频| 国产精品亚洲一区二区三区在线 | 日日摸日日碰夜夜爽亚洲| 日本免费网站观看| 成人午夜影视全部免费看| 亚洲精品成人片在线播放| 无码人妻久久一区二区三区免费 | 成人免费乱码大片A毛片| 人人狠狠综合久久亚洲88| 久久A级毛片免费观看| 亚洲狠狠成人综合网| 国产在线19禁免费观看| A毛片毛片看免费| 亚洲精品一区二区三区四区乱码 | 久久精品免费一区二区| 亚洲午夜福利在线视频| 亚洲?V无码成人精品区日韩| 成人无码a级毛片免费| 亚洲一区二区三区国产精品无码| 日韩免费电影在线观看| 丁香花在线观看免费观看图片| 99ri精品国产亚洲| 日本高清免费中文字幕不卡| 中文无码日韩欧免费视频| 亚洲一区中文字幕在线电影网| 亚洲av无码天堂一区二区三区| 精品熟女少妇a∨免费久久| 亚洲第一综合天堂另类专| 国产成人A人亚洲精品无码|