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) ;
的,
Velocity(6)——velocity遍歷josn格式的字符串