1. 程式人生 > >Velocity(6)——velocity遍歷josn格式的字符串

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

數據表示 code 2個 使用 type 篩選 方法 ret 腳本

使用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格式的字符串