JSTL: как перехватить значение JSON String внутри ответа XML - PullRequest
0 голосов
/ 08 ноября 2019

В верхней части моего JSP я записываю часть JSON, возвращенного из ответа:

<c:set var="myListOfValues"><x:out 
select="$myData/valuesCollection" escapeXml="false"/></c:set>

, и этот JSON выглядит как строка, представляющая объект:

    <valuesCollection>
        {"valueStr":"Single"|"valueId":"2019"}
        {"valueStr":"Married"|"valueId":"2019"}
        {"valueStr":"Divorced"|"valueId":"2020"}
        {"valueStr":"Widowed"|"valueId":"2020"}
    <valuesCollection>

В идеале я хотел бы фильтровать и возвращать только те значения, которые соответствуют определенному valueId . Первоначально я смотрел на x: parse , но это выкидывало ошибки, потому что он видел json. Сейчас я пытаюсь это:

    <c:set var="filteredCollection">
        <c:forEach items="${valuesCollection}" var="element">
            <c:if test="${element.valueId == 2019}">
                <c:out value="${element}" />
            </c:if>
        </c:forEach>
    </c:set>

.. и он говорит, что не может исправить свойство valueId для строки: Свойство 'valueId' не найдено ввведите java.lang.String

Я надеюсь, что есть более простой способ отфильтровать ответ с помощью JSTL. Любые рекомендации действительно приветствуются. Спасибо.

...