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

    的,

  • 相关阅读:
    spring boot2X集成spring cloud config
    Spring boot配置文件application.properties和bootstrap.properties的区别
    (原)linux下caffe模型转tensorflow模型
    (原)torch7中指定可见的GPU
    (原)使用tensorboard显示loss
    (原)tensorflow保存模型及载入保存的模型
    (原)ubuntu挂载及开机自动挂载网络端的文件夹的方法
    (原+转)win7上编译caffe支持python及matlab
    (原)ubuntnu中anaconda的g++提示crtbeginS.o:unrecognized relocation
    (原)PyTorch中使用指定的GPU
  • 原文地址:https://www.cnblogs.com/NiceCui/p/7774083.html
Copyright © 2020-2023  润新知