Velocity(6)——velocity遍歷josn格式的字符串


使用velocity腳本語言遍歷josn格式的字符串

1、由於數據庫會存儲一些json格式的字符,為方便以后使用篩選

如果這些數據我們查出來直接遍歷使用velocity是根本行不通的,例如這樣的話:java后端這樣傳

@RequestMapping(value="/mad/velocity.html") public String test(ModelMap map){ House h = hoseService.getHouse(); String type = h.getAllType(); //String type = ["多功能方向盤","真皮座椅","電動天窗","真皮方向盤"];舉例,和內容不一樣 map.put("type ", type ); return "views/velocity"; }

前端:

1 <div class="baseinfo ">
2             <ul class="clearfix">
3  #foreach($a in $!{type}) 4                 <li>$a</li>
5  #end 6             </ul>
7 </div>

你會發現什么都遍歷不出來;

我們把從數據查出來的json形式的字符串轉換一下呢,轉換成JSONArray形式;

 1 @RequestMapping(value="/mad/velocity.html")  2     public String test(ModelMap map){  3         
 4         House h = hoseService.getHouse();  5 
 6         String type = h.getAllType();  7 
 8         map.put("type ", JSON.parseArray(type) );  9 
10         return "views/velocity"; 11 
12     }

只要經過   JSON.parseArray()     一下返回一個  JSONArray 形式的就可以遍歷了;

 

這里關於JSONArray 知識普及一下

一、JSONObject和JSONArray的數據表示形式

JSONObject的數據是用 {  } 來表示的,

     例如:   { "id" : "123", "courseID" : "huangt-test", "title" : "提交作業", "content" : null  } 

而JSONArray,顧名思義是由JSONObject構成的數組,用  [ { } , { } , ......  , { } ]  來表示

       例如:   [ {  "id" : "123", "courseID" : "huangt-test", "title" : "提交作業" }  ,  {  "content" : null, "beginTime" : 1398873600000  "endTime" } ] ;

        表示了包含2個JSONObject的JSONArray。

可以看到一個很明顯的區別,一個最外面用的是 {  }  ,一個最外面用的是 [  ]  ;

二、如何從字符串String獲得JSONObject對象和JSONArray對象

          JSONObject  jsonObject  = new JSONObject ( String  str);

          JSONArray jsonArray = new JSONArray(String    str  ) ;

三、如何從JSONArray中獲得JSONObject對象

       大家可以把JSONArray當成一般的數組來對待,只是獲取的數據內數據的方法不一樣

       JSONObject   jsonObject  =  jsonArray.getJSONObject(i) ;   

 

的,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM