我有一个存储在数据库中的JSON字符串。在我的一个JSP页面中,我检索了这个字符串,并且希望能够将String或JSON对象传递给Javascript函数。该功能简单,就是用于测试目的将Jackjson JSON对象从JSP传递到JavaScript函数
function test(h){
alert(h);
}
现在我可以从数据库中检索精细JSON字符串,我已经打印出来的画面,以确保其得到它,但是当我通过它像这
<input type="button"
name="setFontButton"
value="Set"
class="form_btn_primary"
onclick="test('<%=theJSON%>'); return false;"/>
什么也没有发生。我用萤火虫检查有什么不对,并说有无效字符。
于是,我又试图传递JSON对象,像这样
Widget widg = mapper.readValue(testing.get(0), Widget.class);
然后在它
onclick="test('<%=widg%>'); return false;"/>
通过现在这将在通过没有错误,并提醒对象名称,但我无法解析它。对象来如与所在的包名Widget类存储像这样
[email protected]
我使用字符串化尝试,但似乎并没有此杰克逊JSON对象上工作。
毕竟失败了,我尝试了从数据库中取出字符串并将其编码为base64的最后手段。然而,这个太多,如果我这样做
String test = Base64.encode(theString);
并传递英寸失败,但如果我这样做,打印出来的画面,然后复制的内容打印出来,并发送,通过它的工作原理,所以不要不太明白这是为什么。
所以有人可以告诉我我做错了什么。我已经尝试了很多不同的解决方案,没有任何工作。
JSON字符串被存储在数据库这样
{ “ID”:1, “分裂”:[ { “文本”:[ { “值”:“测试“ ”locationX“:3, ”locationY“: - 153, ”字体“:{ ”类型“: ”正常“, ”大小“: ”中“, ”黑体“:假, ”颜色“:”5a5a5a“, “斜体”:假 }} ] } ] }
将不胜感激,如果有人可以直接向点我!
编辑:
柜面其他人有同样的问题,这样做是为了从JSP通过JSON的JS功能
<%=theJSON.replaceAll("\"", "\\\'")%>
这允许您通过JSON中,
然后在JavaScript中恢复正常JSON格式
theJSON = theJSON.replace(/'/g,'"');
应该正常工作
你是沿着正确的线路,不得不逃吧,只要抓住它从数据库中,然后使用命令的replaceAll逃脱,然后通过新的串入的JavaScript – AdamM 2012-05-03 15:19:51