我有一個存儲在數據庫中的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