js遍历java后台传来的list方法

本文介绍如何在Java后台将实体类List转换为JSON格式并存入session中,然后在JS前台通过Struts标签库获取JSON数据,再将其解析为JavaScript对象进行遍历展示。

1、java后台

1)实体类list  : ArrayList<MsgNoticeView> msgNotice=..;

2)转换为json:JSONArray.fromObject(msgNotice)

   写入session:getSession().setAttribute("msgNotice", );


2、js前台(jsp页面下引入<%@ taglib prefix="s" uri="/struts-tags"%>)

1)取值:var msg ='<s:property value="#session.msgNotice" escapeHtml="false"/>';

    escapeHtml="false 作用是去掉 &quot;符号,此时msg是字符串;

2)转换成json:  var myobj=eval("(" + msg + ")");

3)遍历数值myobj:

$.each(myobj,function(i,val){
   alert(  val.msgTitle)
    })

Java后台接收前端传来的包含多个JSON字符串的数组,有以下几种解决方案: ### 使用JSONArray转换 可以使用`JSONArray`将前端传来的字符串转换为JSON数组,再进行遍历处理。例如前端传来JSON字符串,后端使用`String`类型接收,之后将其转换为`JSONArray`进行操作: ```java // 后端用String类型接收 String majorList; JSONArray array = JSONArray.fromObject(majorList); for (int i = 0; i < array.size(); i++) { // 遍历输出 System.out.println(array.get(i)); } ``` 这种方法适用于接收前端传来的简单JSON数组字符串,并且对数组元素进行遍历输出等操作[^1]。 ### 解析JSON字符串为List对象 若前端传递数组对象的JSON字符串到后端,可将其解析为`List`对象。在Spring Boot框架下,前端通过`jquery.post()`方法传递值给后端,后端使用`@PostMapping`注解接收请求,示例如下: ```java // 前端js传值代码 var list=[]; list.push("740627156@qq.com"); list.push("2787706997@qq.com"); var postData={}; postData.content="ceshiyoujianneirong"; // 将list对象转化为json字符串 postData.emailAddressListStr=JSON.stringify(list); $.post("http://localhost:8099/pushMessageByEmail",postData,function (data,status) { alert(data); }); // 后端java解析json字符串为List的代码 @PostMapping("/pushMessageByEmail") public String pushMessageByEmail(String content,String emailAddressListStr){ System.out.println(emailAddressListStr); // 开启转化,转化为json数组类型 JSONArray jsonArray = JSONArray.fromObject(emailAddressListStr); List<String> list1 = new ArrayList(); // 遍历jsonarray数组,将值赋给list for(int i = 0;i < jsonArray.size(); i++) { String str = jsonArray.getString(i); list1.add(str); System.out.println(str); } return "sucess"; } ``` 此方法适用于前端传递包含多个JSON字符串的数组对象,后端需要将其解析为`List`对象进行后续处理的场景[^2]。 ### 转化为String数组 若前端传来JSON字符串需要转化为`String`数组,可以先使用`split`方法对字符串进行分割处理: ```java // ids为前端传回的json字符串,首先将其用&分割 String[] idf = ids.split("&"); // 初始化string数组 int x = 0; String[] idz = new String[idf.length]; // 将json中包含数组中的字符放到数组中 for(String i : idf){ String[] y = i.split("="); idz[x++] = y[1]; } // 得到idz字符串数组 ``` 该方法适用于前端传来JSON字符串有特定分隔符,需要将其转换为`String`数组的情况[^3]。 ### 转换为对象集合 对于微信小程序传数组(JSON字符串)到Java后端的情况,可在入参JSON字符串(数组)在`bean`的工具类里转化成对应的对象集合: ```java package com.aone.foottalk.common; import java.util.List; import net.sf.json.JSONArray; public class TestDemo { private String a; private String b; public String getA() { return a; } public void setA(String a) { this.a = a; } public String getB() { return b; } public void setB(String b) { this.b = b; } @SuppressWarnings("unchecked") public static void bbbb(String a){ // 转对象集合 JSONArray json = JSONArray.fromObject(a); List<TestDemo> list = (List<TestDemo>)JSONArray.toCollection(json, TestDemo.class); list.forEach(f->{ System.out.println(f.getA()+"***"+f.getB()); }); } } ``` 此方法适用于前端传来JSON数组需要转换为特定对象集合的场景[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值