Как проанализировать массив JSON в JSP и сформировать строку - PullRequest
0 голосов
/ 07 мая 2018

У меня есть массив JSON строк, который является ничем иным, как ответом, полученным с сервера. Теперь я хотел бы перебрать объект массива и сформировать одну строку и выполнить манипуляции со всей строкой. Например, у меня есть следующий JSON объект

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

Я знал, что могу просто напечатать его как элемент HTML, используя ForEach, как показано ниже,

<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, а затем JSP Standard Tag Library, как указано здесь , затем передать эту строку в качестве аргумента 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 массива. Как сформировать строку из массива JSON.

1 Ответ

0 голосов
/ 08 мая 2018

Я понял, как отформатировать строку из массива JSON. Реализация, как показано ниже,

  <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>
...