2009-05-06 16 views
1

ブラウザからjspページにJSONオブジェクトを送信しました。そのオブジェクトを受け取り、jsp.Doで処理します。特定のパーサが必要ですか?私は次のコードを使用しました。しかし、うまくいかないでしょう。私は、オブジェクトの内容を読んで、それらをjspで印刷する必要があります。jsp内のjsonオブジェクトを処理する

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

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

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

答えて

0

サンプルコードにいくつかの構文エラーがあります。

まず、request.getParameterはStringを返すため、JSONObjectに設定すると機能しません。第二に、あなたのforループは不完全です。

Java用のさまざまなJSONライブラリを探し、それらの1つを使用することをおすすめします。

私が始めてみるために、decodingsamplesをご覧ください。

0

一般に、クエリパラメータ内でJSONを渡すことはありません。あまりにも多くの引用が必要です。むしろ、JSONをペイロード(コンテンツタイプ 'application/json')などとしてPOSTする必要があります。

これ以外にも、jsonパーサが必要です。 Json.orgはトンをリストします。私のお気に入りはJacksonであり、ページのほとんどの選択肢のようにjspから呼び出すこともできます。

+0

uは正しいです..あなたが言う..しかし、私はそれを受信する方法が分からないと、JSPでそれを処理した値を – user98534

+0

request.getParameterがあなたのペイロードを取得するための正しい方法..です掲載されています。次に、jsonパーサを使用してペイロードをJSONObjectに解析する必要があります。 –

1

あなたはJSONValueに入力文字列を解析し、

JSONObject inp = (JSONObject) JSONValue.parse(request.getParameter("param1")); 
2

この問題に対する私の好適な解決策は、java.utilのを実装して出力を提供JSONパーサーを使用することを含む、以下に示すようなようJSONOjectにキャストすることができます.Mapとjava.util.Listインタフェース。これにより、JSP式言語でのJSON構造の単純な解析が可能になります。

Apache Winkに付属のJSON4Jを使用した例です。このサンプルは、URLからJSONデータをインポートし、それを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} 

これはきれいにするためには、構文解析を行うと、Javaのスクリプトレットを避けるためにJSTLタグを作成することが好ましいです。

<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} 
+0

こんにちはスティーブ! <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%>と同じように、JSON4Jのtaglib uriとは何ですか? – CodeBurner

+0

私は既存のものを知らない。上記のコードが2行であると考えると、あまり難しくない自分自身を作成し​​なければならなかった。 –

関連する問題