YCH带带我 2022-07-12 00:32 采纳率: 50%
浏览 39

java Web中变量处理

问题遇到的现象和发生背景

在编写jsp文件时,如何利用java ArrayList list生成 map

问题相关代码,请勿粘贴截图

https://blog.csdn.net/qq_45859826/article/details/123963520

img

我的解答思路和尝试过的方法
我想要达到的结果

img


利用我这个list对象,生成如问题相关代码中的效果,没学过关于web端的语言

  • 写回答

1条回答 默认 最新

  • 欧泡欧大仙 2022-07-14 15:53
    关注

    这个数据格式在初学者看来很像Map, 但其实是叫JSON。
    JSON 是一种轻量级的文本数据交换格式,它用 JavaScript 的语法书写,但独立于这种语言,可以认为这是编程语言间用于传递数据而约定的数据格式。

    参考菜鸟实例如下:
    https://www.runoob.com/json/json-tutorial.html

    {
        "sites": [
        { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
        { "name":"google" , "url":"www.google.com" }, 
        { "name":"微博" , "url":"www.weibo.com" }
        ]
    }
    

    一般来说, 会在后端将数据查询出来, 并组装成为JSON格式的数据, 然后返回前台在JSP接收后直接使用.
    打个比方, 比如从数据库获取如下数据.

    NameValue
    北京350000
    天津120000
    上海300000

    查询完所有数据后, 在后端会得到一个List, 数据大概是这样.
    (这里利用MAP模拟了使用JDBC查询数据的过程, 拿到的是每列数据的 字段名=字段值)

            List<Map<String,String>> list = new ArrayList<Map<String,String>>();
            Map<String, String> map = new HashMap<String, String>();
            map.put("Name", "北京");
            map.put("Value", "350000");
            list.add(map);
            map = new HashMap<String, String>();
            map.put("Name", "天津");
            map.put("Value", "120000");
            list.add(map);
            map = new HashMap<String, String>();
            map.put("Name", "上海");
            map.put("Value", "300000");
            list.add(map);
            System.out.println(list);
    
    [{Value=350000, Name=北京}, {Value=120000, Name=天津}, {Value=300000, Name=上海}]
    

    然后通过遍历, 将List中需要的数据, 组装成JSON格式.

            JSONArray jsonarr = new JSONArray(); //JSONarray, 类似List的数据对象, 里面是单个 JSONObjcet
            for(Map<String,String> m : list){
                JSONObject json = new JSONObject(); // 遍历list, 组装成单个的 JSONObjcet 对象
                json.put("Name",m.get("Name"));
                json.put("Value",m.get("Value"));
                jsonarr.add(json);
            }
            System.out.println(jsonarr.toString());
    
    [{"Value":"350000","Name":"北京"},{"Value":"120000","Name":"天津"},{"Value":"300000","Name":"上海"}]
    

    当然在实际操作中, 会有更简便的方法来处理数据, 这里只是举个例子简明的讲解一下.

    评论

报告相同问题?

问题事件

  • 创建了问题 7月12日