如何在JSP中解析JSON数组并形成一个字符串

时间:2018-05-07 10:59:07

标签: jsp jsp-tags

我有一个JSON字符串数组,它只是从服务器收到的响应。现在我想迭代数组对象并形成一个字符串,并对整个字符串执行字符串操作。例如,我有以下JSON对象

      "data": {
          "details": [
            "Toyota",
            "Mazda",
            "Hyundai"
          ]
        }

我知道我可以使用ForEach将其打印为HTML元素,如下所示

<c:forEach items="${details}" var="item" varStatus="status">
    <c:if test="${!status.last}
      <span>${item}, </span>
    </c:if>
    <c:if test="${status.last}">
      <span>and ${item}</span>
    </c:if>
</c:forEach>

但是在这里我不想以这种方式但是想形成一个完整的字符串,如Toyota Mazda Hyundai,然后像标准here那样形成JSP标准标记库,然后将该字符串作为参数传递给{{ 1}}键如下,

来自i18n常见属性的

摘录

i18n
来自car.makers=Car makers {0}

摘录

jsp

完整字符串是我尝试从<c:set var="carmakers"><fmt:message key="car.makers"><fmt:param>${thefullstring}</fmt:param></fmt:message></c:set> 数组生成的字符串。 如何从JSON数组形成一个字符串。

1 个答案:

答案 0 :(得分:0)

我想到了如何从JSON数组格式化String。实施如下,

  <c:set var="models" value=""/>
  <c:forEach items="${carmodels}" var="item" varStatus="status">
    <c:if test="${!status.last}">
        <c:set var="models" value="${models}${item},${' '}"/>
    </c:if>
    <c:if test="${status.last}">
      <c:choose>
        <c:when test="${not empty models}">
          <c:set var="models" value="${models}and${' '}${item}"/>
        </c:when>
        <c:otherwise>
          <c:set var="models" value="${item}"/>
        </c:otherwise>
      </c:choose>
    </c:if>
  </c:forEach>