【问题标题】:Traverse through JSONArray using JSTL c:forEach使用 JSTL c:forEach 遍历 JSONArray
【发布时间】:2020-08-23 17:11:30
【问题描述】:

我想遍历一个 JSONArray。例如,

[{"attribute_name":"222","value":"333","monitor_name":"111"}, {"attribute_name":"bbb","value":"ccc","monitor_name":"aaa"}]

我应该遍历 JSONArray 中的每个 JSONObject 并获取该对象的每个键的值。我尝试过这样的事情, <c:forEach var="eachEntry" items="${widgetDataForAll}"></c:forEach> 循环,但它说

javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>

另外,我不知道如何获取每个键的值。

【问题讨论】:

    标签: json jsp foreach jstl


    【解决方案1】:
    <c:forEach begin="0" end="${jsonArray.length() -1}" var="i">
         ${jsonArray.getJSONObject(i).getString("attribute_name")}
         ${jsonArray.getJSONObject(i).getString("value")}
         ${jsonArray.getJSONObject(i).getString("monitor_name")}
    </c:forEach>
    

    【讨论】:

    • 我得到以下异常,org.apache.jasper.JasperException: &lt;h3&gt;Validation error messages from TagLibraryValidator for [c] in [/jsp/MyPage_Widget.jsp]&lt;/h3&gt;&lt;p&gt;403: tag = 'forEach' / attribute = 'end': An error occurred while parsing custom action attribute "end" with value "${test.length() -1}": Encountered "(", expected one of ["}", ".", "&gt;", "gt", "&lt;", "lt", "==", "eq", "&lt;=", "le", "&gt;=", "ge", "!=", "ne", "[", "+", "-", "*", "/", "div", "%", "mod", "and", "&amp;&amp;", "or", "||"]&lt;/p&gt;
    • 你可以发布你使用的标签库吗?
    • 这是我正在使用的 TagLibrary,&lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&gt;
    • 使用 java.sun.com/jsp/jstl/core" %>
    • 这不能解决这个错误,哈迪斯。 OP的环境有比这更严重的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2018-03-22
    • 2013-01-15
    • 2011-01-10
    • 1970-01-01
    • 2019-10-20
    • 2012-12-12
    相关资源
    最近更新 更多