问题遇到的现象和发生背景
在编写jsp文件时,如何利用java ArrayList list生成 map
问题相关代码,请勿粘贴截图
https://blog.csdn.net/qq_45859826/article/details/123963520

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

利用我这个list对象,生成如问题相关代码中的效果,没学过关于web端的语言
在编写jsp文件时,如何利用java ArrayList list生成 map
https://blog.csdn.net/qq_45859826/article/details/123963520


这个数据格式在初学者看来很像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接收后直接使用.
打个比方, 比如从数据库获取如下数据.
| Name | Value |
|---|---|
| 北京 | 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":"上海"}]
当然在实际操作中, 会有更简便的方法来处理数据, 这里只是举个例子简明的讲解一下.