Обработка json-объектов в jsp - PullRequest
1 голос
/ 06 мая 2009

У меня есть объект JSON, отправленный из браузера на страницу jsp. Как я могу получить этот объект и обработать его в jsp. Нужны ли какие-то конкретные парсеры? Я использовал следующий фрагмент кода. Но он не будет работать. По сути, я должен прочитать содержимое объекта и распечатать его в jsp.

<%@page language="java" import="jso.JSONObject"%>

<%
JSONObject inp=request.getParameter("param1");
%>

<% for(int i=0;i<inp.size();i++)
{%>
    <%=inp.getString(i)%>
<%
}
%>

Ответы [ 5 ]

2 голосов
/ 22 мая 2013

Мое предпочтительное решение этой проблемы заключается в использовании анализатора 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}
1 голос
/ 30 октября 2009

Вы можете проанализировать входную строку на JSONValue и затем привести ее к JSONOject, как показано ниже

  JSONObject inp = (JSONObject) JSONValue.parse(request.getParameter("param1"));
0 голосов
/ 06 мая 2009

В вашем примере кода есть несколько синтаксических ошибок.

Во-первых, request.getParameter возвращает String, поэтому установка его в JSONObject не будет работать. Во-вторых, ваш цикл for не завершен.

Я предлагаю изучить различные библиотеки JSON, доступные для Java, и использовать одну из них.

Чтобы помочь вам начать, я бы посмотрел на декодирование образцов .

0 голосов
/ 07 мая 2009

В общем случае вы не будете передавать JSON в параметрах запроса - требуется слишком много цитирования. Скорее вы должны POST с JSON в качестве полезной нагрузки (тип контента 'application / json') или тому подобное.

Но кроме этого вам нужен парсер json; Json.org списки тонн; мой любимый Джексон , который, как и большинство альтернатив со страницы, также можно вызвать из jsp.

0 голосов
/ 06 мая 2009

Библиотека JSON svenson также может использоваться из JSP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...