为什么JSON对象在JSP中打印为String?

时间:2014-05-15 09:34:40

标签: json jsp jsp-tags json-lib

在我的Servlet中,使用值

创建JSONObject
{'alerts':true}

当我尝试使用JSP页面打印它的值时,它将JSON对象打印为String。它打印为

 "{'alerts':true}"

如何以JSON格式而不是字符串打印?

在Servlet中:

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}"

1 个答案:

答案 0 :(得分:2)

根据http://json-taglib.sourceforge.net/tutorial.html

通过在代码上设置value =“...”属性。 <json:property/>

  • 如上所述适用相同的修剪和编码规则。
  • 如果指定的值是布尔值,那么它将是一个JSON布尔值
  • 如果指定的值是一个数字(Integer,Short,Long,Double,Float),那么它将被转换为JSON数值。
  • 如果值为String,则会转换为JSON字符串。
  • 用于设置值的任何其他Java类型都将调用toString(),它们将被视为JSON字符串。

根据文档,您的值将转换为Json String

所以请尝试将<json:property>放入<json:object></json:object>

或者你可以用javascript

解析你的jSON字符串
var jsonObj = JSON.parse(audioAlerts)