You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JSP中解析JSON数组并拼接成字符串

我明白你想要把JSON数组里的元素拼接成单个字符串,而不是逐个输出成HTML元素对吧?这里有两种常见的解决方案,你可以根据自己的需求选择:

方案一:前端用JSTL直接拼接字符串

通过<c:set>初始化一个空字符串,再结合<c:forEach>的varStatus判断是否为最后一个元素,来控制是否添加分隔符:

<%-- 初始化存储拼接结果的空字符串 --%>
<c:set var="joinedString" value="" />

<%-- 遍历details数组 --%>
<c:forEach items="${data.details}" var="item" varStatus="status">
    <%-- 拼接当前元素到结果字符串 --%>
    <c:set var="joinedString" value="${joinedString}${item}" />
    
    <%-- 非最后一个元素时添加分隔符(这里用逗号加空格,可自行修改) --%>
    <c:if test="${!status.last}">
        <c:set var="joinedString" value="${joinedString}, " />
    </c:if>
</c:forEach>

<%-- 现在可以使用拼接好的字符串,比如输出或者用于其他操作 --%>
<p>拼接后的结果:${joinedString}</p>

如果需要更换分隔符,只需要把, 换成你需要的格式(比如; 、|等)即可。

方案二:后端提前拼接好字符串(更简洁)

如果你的后端是Java 8及以上版本,可以直接在后端把集合转成拼接好的字符串,再传递给前端,这样前端就不用处理循环逻辑了:

// 假设后端拿到了details列表
List<String> detailsList = Arrays.asList("Toyota", "Mazda", "Hyundai");
// 用指定分隔符拼接成字符串
String joinedDetails = String.join(", ", detailsList);
// 将拼接好的字符串放入模型,传给前端
model.addAttribute("joinedDetails", joinedDetails);

然后前端直接使用这个变量就行:

<p>拼接后的结果:${joinedDetails}</p>

两种方式都能达到你要的效果,后端处理的方式会让前端代码更简洁,前端处理则更灵活,适合需要在前端动态调整分隔符或拼接规则的场景。

内容的提问来源于stack exchange,提问作者Panch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:49:42