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) ;   

的,

原文地址:https://www.cnblogs.com/NiceCui/p/7774083.html