jsp 转换 JsonArray 元素

jsp to convert JsonArray elements

我正在创建我的数组,它有一个像这样的键值(姓名和电子邮件)并且有一个循环填充如下:

for(x y : model) {
             
               obj_JSONObject1.append(x.getName(), x.getValue()); 
              
        }
            jsonArray.put(obj_JSONObject1);

我的数组如下所示:

[
  {
"Email": [
      "email1@email.com",
      "abc@liferay.com"
    ],
    "Name": [
      "name1",
      "name2"
    ]
}
]

但是我在 jsp 的 html table 中显示它们时遇到问题。我试过了:

<c:forEach begin="0" end="${userList.length() -1}" var="i">
<tr>
     <td>${userList.getJSONObject(i).get("Name")}
      </td>
      <td>${userList.getJSONObject(i).get("Email")}
     </td>
    
</tr>
</c:forEach>

table 创建为: 姓名电子邮件
["name1","name2"] ["email1@email.com","abc@liferay.com"]

谁能告诉我如何以表格格式显示记录(值应该在每一行而不是横向?提前致谢!

你需要两个嵌套的 c:forEach 循环,一个迭代外部 userList 数组,另一个迭代内部 NameEmail数组。

<c:forEach begin="0" end="${userList.length() - 1}" var="i">
    
    <c:set var="names" value='${userList.getJSONObject(i).get("Name")}' />
    <c:set var="emails" value='${userList.getJSONObject(i).get("Email")}' />

    <c:forEach begin="0" end="${names.length() - 1}" var="j">
    <tr>
        <td>${names.getString(j)}</td>
        <td>${emails.getString(j)}</td> 
    </tr>
    </c:forEach>

</c:forEach>

该示例假定 NameEmail 数组将始终包含相同数量的项目。如果不是,则需要进行某种错误处理。