Java 使用JSTL在JSP中迭代JSONArray
我正在发送一个带有模型的自定义对象列表,以及一个JSP作为视图。我的自定义对象有一个名为Java 使用JSTL在JSP中迭代JSONArray,java,json,spring,jstl,arrays,Java,Json,Spring,Jstl,Arrays,我正在发送一个带有模型的自定义对象列表,以及一个JSP作为视图。我的自定义对象有一个名为properties的属性,它是JSONObject。此属性的值为 {"services":[{"name":"abcd"},{"name":"efgh"}]} 现在我想遍历JSONArray[{“name”:“abcd”},{“name”:“efgh”}]。下面是我正在做的循环 <c:if test="${not empty customObject.services}">
properties
的属性,它是JSONObject
。此属性的值为
{"services":[{"name":"abcd"},{"name":"efgh"}]}
现在我想遍历JSONArray[{“name”:“abcd”},{“name”:“efgh”}]
。下面是我正在做的循环
<c:if test="${not empty customObject.services}">
<c:forEach items="${customObject.services.getJSONArray(\"services\")}" var="Service" varStatus="rowCounterCh">
<li>${Service.name}</li>
</c:forEach>
</c:if>
那么,我应该如何迭代JSONArray呢?请帮助对于每个标签,您的物品都需要一个基本界面。JSONArray既不是java.util.Collection也不是java.util.Iterable。因此,对于每个标记,实现都不能迭代传递到items属性中的集合 要解决此问题,您可以:
我有这样的东西
<c:forEach begin="0" end="${jsonArray.length() -1}" var="index">
${jsonArray.getJSONObject(index).getString("name")}
</c:forEach>
${customObject.services.getJSONArray(\"services\").length()}
您使用什么具体的JSONArray实现?@Taky抱歉,我不理解这一部分:(Java中存在很多JSON库。您使用什么?什么包是for joy JSONArray类?我想获得JSONArray并在scriptlet中处理它,如
var itemStr='';
但这给了我JSON数组作为[{";name";:";abcd";},{";name";:";efgh";}这是所有的“s”都替换为";如何避免此问题?尝试将escapeXml属性设置为false:
${customObject.services.getJSONArray(\"services\").length()}