0

私のサーブレットでは、次の値で JSONObject が作成されます。

{'alerts':true}

を使用して JSP ページにその値を出力しようとすると、JSON オブジェクトが String として出力されます。として印刷されます。

 "{'alerts':true}"

文字列ではなく JSON 形式で出力するにはどうすればよいですか?

サーブレットの場合:

public JSONObject getAudioAlerts() {
    JSONObject val = new JSONObject("{'alerts':true}");
     return val;
}

JSP の場合:

<br><br><json:property name="audioAlerts" value="${myBean.audioAlerts"}" />;
    <br> Expected output: {'alerts':true}
    <br>Acutal output: "{'alerts':true}"
4

1 に答える 1

2

http://json-taglib.sourceforge.net/tutorial.htmlに従って

タグに value="..." 属性を設定する。 <json:property/>

  • 上記と同じトリミングおよびエンコード規則が適用されます。
  • 指定された値がブール値の場合、JSON ブール値に変換されます
  • 指定された値が数値 (Integer、Short、Long、Double、Float) の場合、JSON 数値に変換されます。
  • 値が文字列の場合、JSON 文字列に変換されます。
  • 値を設定するために使用されるその他の Java 型は、それらに対して toString() を呼び出す必要があり、JSON 文字列として扱われます。

ドキュメントに従って、値はJson文字列に変換されています

だからあなたを入れてみて<json:property>ください <json:object></json:object>

または、JavaScriptでjSON文字列を解析できます

var jsonObj = JSON.parse(audioAlerts)
于 2014-05-15T11:00:56.887 に答える