Мое предпочтительное решение этой проблемы заключается в использовании анализатора JSON, который предоставляет выходные данные, реализующие интерфейс java.util.Map и java.util.List. Это позволяет выполнить простой анализ структуры JSON на языке выражений JSP.
Вот пример использования JSON4J, поставляемого с Apache Wink. Пример импортирует данные JSON из URL, анализирует их в сценарии Java и просматривает полученную структуру.
<c:import var="dataJson" url="http://localhost/request.json"/>
<%
String json = (String)pageContext.getAttribute("dataJson");
pageContext.setAttribute("parsedJSON", org.apache.commons.json.JSON.parse(json));
%>
Fetch the name of the node at index 1 : ${parsedJSON.node[1].name}
Чтобы сделать это чистым, было бы предпочтительнее создать тег JSTL, чтобы выполнять синтаксический анализ и избегать сценариев Java.
<c:import var="dataJson" url="http://localhost/request.json"/>
<json:parse json="${dataJson}" var="parsedJSON" />
Fetch the name of the node at index 1 : ${parsedJSON.node[1].name}