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

时间:2021-04-12 15:44:13

使用velocity脚本语言遍历josn格式的字符串

1、由于数据库会存储一些json格式的字符,为方便以后使用筛选

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

如果这些数据我们查出来直接遍历使用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"; }

前端:

 <div class="baseinfo ">
<ul class="clearfix">
#foreach($a in $!{type})
<li>$a</li>
#end
</ul>
</div>

你会发现什么都遍历不出来;

我们把从数据查出来的json形式的字符串转换一下呢,转换成JSONArray形式;

 @RequestMapping(value="/mad/velocity.html")
public String test(ModelMap map){ House h = hoseService.getHouse(); String type = h.getAllType(); map.put("type ", JSON.parseArray(type) ); return "views/velocity"; }

只要经过   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) ;

的,