【问题标题】:how to parse array list data and json data in jspjsp中如何解析数组列表数据和json数据
【发布时间】:2014-09-05 18:48:17
【问题描述】:

我的 jsp 页面中有两组数据,一组是 array list,另一组是 json data。现在我想解析这两个数据集并创建我自己的下拉菜单。

这里是示例Array List,名为json_obj 数据

["ABC-1","ABC-2","ABC-3","ABC-4","ABC-5","ABC-6"]

我尝试了这段代码,但没有工作

<select>
  <option value="all_qns">All</option>
  <c:forEach var="strategy" items="${json_obj}" varStatus="strategyLoop">
    <option><c:out value="${strategyLoop[index]}"/></option>

  </c:forEach>
</select>

获取空白选项

<select>
 <option value="all_qns">All</option>
 <option></option>
 <option></option>
 <option></option>
 <option></option>
 <option></option>
 <option></option>
</select>

我也确实有这块json data 命名为json_obj_m

{"a":"1050","b":"1079","c":"1073","d":"1074"}

我a=试过这个:

<c:forEach items="${json_obj_m}" var="met">
 <option value="${met.key}">${met.value}</option>
</c:forEach>

但不能再次工作得到错误,那个弹簧不支持key

任何人都可以指导我在哪里做错了,对 Java/Spring 非常陌生。提前致谢。

【问题讨论】:

标签: java arrays json spring jsp


【解决方案1】:

您对 JSTP foreach 的使用不正确:您获得了 strategy 中的值并尝试使用(错误地)strategyLoop 这是状态。你应该简单地写:

<option>${strategy}</option>

状态有助于计算迭代次数,您可以使用${strategyLoop.index}${strategyLoop.count}

  • strategyLoop.index 从 0 开始
  • strategyLoop.count 从 1 开始

【讨论】:

    【解决方案2】:

    要遍历列表,请使用以下代码:

    <select id="someId">
      <option value="all_qns">All</option>
      <c:forEach var="strategy" items="${json_obj}" >
        <option value="${strategy}">${strategy}</option>
    
      </c:forEach>
    </select>
    

    如果你通过 Ajax 调用获取 JSON,你可以使用这个(通过 JavaScript):

    $.each(data, function(key, value) { 
             $('#someId').append("<option value="+key+"option>"+value+"</option>");  
        });
    });
    

    【讨论】:

    • JSON 数据工作正常,但是当我对ArrayList 执行相同操作时,它不起作用。我通过Javascript 使其工作为:dataMatel = &lt;%=request.getAttribute("json_obj")%&gt;; $.each(dataMatel, function(value) { $('#questionID').append("&lt;option value="+dataMatel[value]+"&gt;"+dataMatel[value]+"&lt;/option&gt;"); }); 但我仍然不确定如何在 JSP 页面中迭代(不使用 Javascript)。我试过这个&lt;c:forEach var="strategy" items="${json_obj}" &gt; &lt;h1&gt;${strategy}&lt;/h1&gt; &lt;/c:forEach&gt; 但输出就像 `["ABC-1" "ABC-2" "ABC-3"
    猜你喜欢
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    相关资源
    最近更新 更多