使用JSTL在JSP中迭代JSONArray

See*_*ker 2 java arrays spring json jstl

我正在发送一个包含模型的自定义对象列表,以及一个JSP作为视图.我的自定义对象有一个名为的属性properties,它是JSONObject.此属性的值为

{"services":[{"name":"abcd"},{"name":"efgh"}]}
Run Code Online (Sandbox Code Playgroud)

现在我想迭代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>
Run Code Online (Sandbox Code Playgroud)

但是这不能遍历JSONArray.我得到了以下错误.

javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt;
Run Code Online (Sandbox Code Playgroud)

那么,我应该怎么做才能遍历JSONArray?请帮忙

小智 6

我有类似的东西

<c:forEach begin="0" end="${jsonArray.length() -1}" var="index">
     ${jsonArray.getJSONObject(index).getString("name")}
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

替换${jsonArray.length() -1}你的jsonArray.在这种情况下,它是这样的

${customObject.services.getJSONArray(\"services\").length()}
Run Code Online (Sandbox Code Playgroud)