隨筆-124  評論-194  文章-0  trackbacks-0
          平時編程中經(jīng)常遇到將多項(xiàng)內(nèi)容放入字串,然后再一一解析出來的情況,常常是這樣的字串操作不勝其煩。
          我們可以使用JSON這一標(biāo)準(zhǔn)格式來組織內(nèi)容到字符串,然后現(xiàn)成的類庫來進(jìn)行解析,準(zhǔn)確而清晰。

          例如:
          多項(xiàng)值可以這樣組織:{id:1, name:'John', number:'4563223'}
          數(shù)組的格式是這樣:[{id:1, name:'John', number:'4563223'}, {id:2, name:'Kate', number:'873223'}]
          具體的格式說明看這里

          下面來看一下在JAVA環(huán)境以及在WEB里的JAVASCRIPT解析方法:

          JAVA的方式:
                  JSONObject jo = new JSONObject ("{id:1,name:'hello, world'}") ;
                  logger.info("{} is {}", jo.getInt("id"), jo.getString("name"));
                 
                  JSONArray arr = new JSONArray("[" +
                          "{id:1,n:'host1',s:1}," +
                          "{id:2,n:'host2',s:0}," +
                          "{id:3,n:'host3',s:0}" +
                          "]");
                 
                  for (int i=0; i<arr.length(); i++) {
                      JSONObject o = arr.getJSONObject(i);
                      logger.info("{} name is {}", o.getString("id"), o.getString("n"));
                  }
                 
          輸出是:
          1 is hello, world
          1 name is host1
          2 name is host2
          3 name is host3
          用到的類庫在這里


          JS的方式:
              {
                  var o = Ext.util.JSON.decode(    "{id:1,n:'host1',s:1}");

                  eb.log.debug (o.id + " is " + o.n);
              }
             
              {
                  var o = Ext.util.JSON.decode("[" +
                          "{id:1,n:'host1',s:1}," +
                          "{id:2,n:'host2',s:0}," +
                          "{id:3,n:'host2',s:0}" +
                          "]");

                  for (var i=0; i<o.length; i++) {
                      eb.log.debug (o[i].id + " is " + o[i].n);
                  }
              }

          輸出是:
          1 is host1
          1 is host1
          2 is host2
          3 is host2
          用到的工具在這里。這里用了EXT包裹過一道的此工具,工作方式是一樣的。

          posted on 2008-05-10 12:15 我愛佳娃 閱讀(7117) 評論(4)  編輯  收藏 所屬分類: JAVA基礎(chǔ)

          評論:
          # re: 用JSON格式進(jìn)行內(nèi)容組織,跟多項(xiàng)內(nèi)容的字符串解析說BYEBYE[未登錄] 2008-05-10 23:11 | Summer
          呵呵,很棒的文章,淺顯易懂。  回復(fù)  更多評論
            
          # re: 用JSON格式進(jìn)行內(nèi)容組織,跟多項(xiàng)內(nèi)容的字符串解析說BYEBYE[未登錄] 2008-05-10 23:36 | Samuel
          呵呵!建議參考一下XStream。  回復(fù)  更多評論
            
          # re: 用JSON格式進(jìn)行內(nèi)容組織,跟多項(xiàng)內(nèi)容的字符串解析說BYEBYE 2008-05-11 08:54 | 我愛佳娃
          嗯,XSTREAM也可以“組織內(nèi)容到字串”,它的兩分鐘教程在這里:http://xstream.codehaus.org/tutorial.html

          XSTREAM是將整個對象輸出成XML,好像不能控制需要輸出的成員及其字段名,但可以非常方便的自動進(jìn)行轉(zhuǎn)換;它輸出的XML要比JSON費(fèi)紙。JSON天然與WEB上的JAVASCRIPT集成也是一個優(yōu)點(diǎn)。各有用武之地,XSTREAM是個好東東!  回復(fù)  更多評論
            
          # re: 用JSON格式進(jìn)行內(nèi)容組織,跟多項(xiàng)內(nèi)容的字符串解析說BYEBYE 2008-05-11 18:39 | dellsoft
          json-lib 也不錯呀  回復(fù)  更多評論
            
          主站蜘蛛池模板: 温州市| 澄江县| 沛县| 金阳县| 玉屏| 宜兰县| 海兴县| 永嘉县| 勃利县| 沙湾县| 黑龙江省| 武鸣县| 长岛县| 北川| 赞皇县| 沿河| 甘肃省| 张家口市| 台北县| 班玛县| 四会市| 合肥市| 陵水| 望谟县| 淳安县| 甘德县| 蓬莱市| 开原市| 革吉县| 镇赉县| 大同县| 宿迁市| 林芝县| 兰西县| 灵山县| 那曲县| 塔城市| 北辰区| 兰坪| 如皋市| 仙居县|