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

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

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

    歡迎使用我的 在線工具

    小D

    讀歷史、看小說、寫程序都是我所愛。技術(shù)不好,頭腦不靈光,靠的是興趣。
    隨筆 - 35, 文章 - 25, 評(píng)論 - 13, 引用 - 0
    數(shù)據(jù)加載中……

    VagaJson,一個(gè)JSON與Java對(duì)象的序列化工具

         一直很喜歡JSON這種數(shù)據(jù)格式,它簡(jiǎn)潔高效,沒什么冗余的數(shù)據(jù),趁著離職回家,沒什么事做,就寫一個(gè)JSON字符串反序列化為Java對(duì)象,然后能將Java對(duì)象序列化為JSON字符串的工具。
        1. JSON字符串反序列化Java對(duì)象:
        嚴(yán)格來說是JsonObject和JsonArray對(duì)象,分別對(duì)應(yīng)了Json中的對(duì)象和數(shù)組。這里采用了Douglas Crockford的遞歸降序的JSON解釋器的方法,我編寫Java版本,所以這個(gè)解析器的所有權(quán)利都是Douglas Crockford的。通過該解析器就能將Json字符串序列化為相應(yīng)的JsonObject和JsonArray對(duì)象,然后能可以訪問這些對(duì)象來獲取你想要的值。你可以這樣使用:
     1    public void testValue(){
     2        JsonHolder obj = (JsonHolder) new JsonParser().doParse(new File("c:\\cc.json"));
     3        if(obj.isArray()){
     4            JsonArray jarr = (JsonArray) obj;
     5            JsonObject jo = (JsonObject) jarr.get(2);
     6            System.out.println(jo.getValue("pdate"));
     7            System.out.println(jo.getValue("id"));
     8            JsonArray joa = (JsonArray) jo.getValue("users");
     9            JsonObject joo = (JsonObject) joa.get(2);
    10            System.out.println(joo.getValue("name"));
    11            
    12            System.out.println(joo.isEmpty());
    13        }

    14    }
    cc.json是一個(gè)保存有Json字符串的文件,你也可以直接傳入Json字符串。

      2. Java對(duì)象的Json字符串序列化。可以將Collection接口的實(shí)現(xiàn)類的對(duì)象及Map接口的實(shí)現(xiàn)對(duì)象轉(zhuǎn)換成Json字符串,對(duì)于普通Java對(duì)象來說,只是將其屬性轉(zhuǎn)換成Json屬性,所謂的Java對(duì)象的屬性,就是以get開頭的方法。你可以這樣使用:
     1    public void testMap() {
     2
     3        Map ss = new HashMap();
     4        
     5        for(int i = 0; i < 10; i++){
     6            Article a = new Article();
     7            a.setId(12321);
     8            a.setContent("說法適當(dāng)方式的士大夫 <map>");
     9            a.setIsPrime(true);
    10            a.setTitle("斯蒂芬速度ddddsds <map>");
    11            User []us = new User[5];
    12            for(int j = 0; j < 5;j++){
    13                User u = new User();
    14                u.setId(12312);
    15                u.setName("daimin");
    16                us[j] = u;
    17                
    18            }

    19            a.setUsers(us);
    20            a.setPdate(new Date());
    21            ss.put(i+"", a);
    22        }

    23        
    24        String res = Json.toJson(ss,false,"C://cc.json");
    25    
    26    }

    相信的使用方法可以參加源碼中的test包下面的代碼。本工具支持Java1.4及其以上版本。
    你可以自由的使用該工具,但是本人不保證其效率及功能的完整性,如果能有任何的反饋,我會(huì)很樂意的修改,如果你能將該工具用于任何的項(xiàng)目中,我也十分的榮幸,不過請(qǐng)保留本人的名字。

    源碼在這里下載,同時(shí)里面還有一個(gè)工具VersionHelper,它能將版本信息或者許可協(xié)議添加到Java類文件的開頭。

    posted on 2011-07-29 22:27 vagasnail 閱讀(1159) 評(píng)論(1)  編輯  收藏 所屬分類: javajs

    評(píng)論

    # re: VagaJson,一個(gè)JSON與Java對(duì)象的序列化工具[未登錄]  回復(fù)  更多評(píng)論   

    求教,將JSON轉(zhuǎn)換為Object的方法有么?我沒有找到哦。
    2013-03-06 09:35 | daniel
    主站蜘蛛池模板: 91亚洲一区二区在线观看不卡| 1000部无遮挡拍拍拍免费视频观看| 亚洲国产精品一区二区久| 亚洲精品线路一在线观看| 亚洲午夜一区二区三区| 亚洲国产精品无码专区影院| 曰批全过程免费视频网址| 毛片基地看看成人免费| 亚洲视频手机在线| 亚洲人成色7777在线观看| 国产免费的野战视频| 黄页免费在线观看| 亚洲日本久久一区二区va| 亚洲AV无码一区二区二三区软件 | 精品亚洲成α人无码成α在线观看| 青青视频观看免费99| 日韩插啊免费视频在线观看| 久久最新免费视频| 久香草视频在线观看免费| 亚洲黄色网址大全| 婷婷久久久亚洲欧洲日产国码AV| 国产亚洲精品免费视频播放| 免费人成激情视频| 国产免费131美女视频| 毛片无码免费无码播放 | 91麻豆精品国产自产在线观看亚洲| 59pao成国产成视频永久免费| 国产在线观看免费av站| 久久久久免费视频| 精品国产污污免费网站入口| 一级毛片a免费播放王色| 丁香六月婷婷精品免费观看| 一个人看的www视频免费在线观看| 成人免费观看男女羞羞视频| 一本岛v免费不卡一二三区| 四虎一区二区成人免费影院网址| 男人免费视频一区二区在线观看| 青青久久精品国产免费看| 一二三四在线观看免费中文在线观看| 成年免费a级毛片| 国产高清对白在线观看免费91 |