jialisoftw

          Servlet傳多個(gè)JSON變量(Java)

          通過(guò)Java servlet處理前臺(tái)頁(yè)面JS發(fā)出的請(qǐng)求,為了和JS兼容通常把Java變量轉(zhuǎn)化成JSON再傳遞給前臺(tái)的JS進(jìn)行處理。例如在servlet中:
          ArrayList tempList = new ArrayList();
          tempList.add("a");
          tempList.add("b");
          JSONArray jsonArray = JSONArray.fromObject(tempList);
          PrintWriter pw = response.getWriter();
          pw.write( jsonArray.toString() );
          這樣就可以把tempList轉(zhuǎn)換成json格式發(fā)給前臺(tái)JS處理。
          如果要同時(shí)傳遞多個(gè)變量,可以自定義類(lèi)存放N個(gè)屬性,放到ArrayList中轉(zhuǎn)換成jsonArray再傳過(guò)去,也可自己定義數(shù)據(jù)結(jié)構(gòu)。但是對(duì)于邏輯、數(shù)據(jù)結(jié)構(gòu)均不同的變量,確實(shí)要分開(kāi)傳遞。例如想要再傳遞一個(gè)哈希Map:
          Map clusterMap = new HashMap();
          clusterMap.put("cluster", "a");
          JSONObject jsonObject = JSONObject.fromObject(clusterMap);
          注意JSON要求鍵值must be strings,因此所傳的Map的鍵值要為String類(lèi)型
          再write一下pw.write( jsonArray.toString() );
          實(shí)際上如果這樣做的話(huà)JS并不能獲取到傳遞的變量,即使再加一層Map設(shè)定這些變量的鍵值,JS再通過(guò)鍵獲得這些變量也會(huì)出問(wèn)題(不知道簡(jiǎn)單的變量有沒(méi)問(wèn)題,沒(méi)試過(guò),但我用的時(shí)候就只能獲得第一個(gè)數(shù)據(jù))。
          考慮到j(luò)son格式的本質(zhì)是數(shù)組,將轉(zhuǎn)換后的變量再用數(shù)組格式進(jìn)行連接,再傳過(guò)去,就OK了。例如:
          String r = "["+jsonArray.toString()+","+jsonObject2.toString()+"]";
          PrintWriter pw2 = response.getWriter();
          pw2.write(r);
          這樣,JS通過(guò)獲取第0個(gè)數(shù)組就可以獲得tempList,第1個(gè)數(shù)組獲得clusterMap

          posted on 2012-10-18 10:51 飛豬一號(hào) 閱讀(2454) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          <2012年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          友情鏈接

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 承德市| 儋州市| 霍林郭勒市| 天全县| 隆子县| 荔波县| 沧州市| 思南县| 延寿县| 平远县| 黄冈市| 基隆市| 泰州市| 沁水县| 修武县| 大渡口区| 鲁甸县| 股票| 额济纳旗| 满洲里市| 中阳县| 赤峰市| 彭水| 贺兰县| 滦平县| 贡嘎县| 武鸣县| 肥城市| 泰来县| 马龙县| 涟源市| 濮阳市| 神木县| 齐河县| 五华县| 互助| 林州市| 梓潼县| 曲水县| 东乡| 调兵山市|