如何正確轉(zhuǎn)換JSON格式參數(shù)介紹
下面具體介紹JSON格式的書寫與描述,還要講述下JSON格式,然后發(fā)起請求,返回的時候才以真正的json格式數(shù)據(jù)返回, 下面就進行JSON格式的講解與分析,如何更好的弄好JSON格式呢?
需要說明一點,jQuery的getJSON方法其實是把JSON格式的參數(shù)轉(zhuǎn)換成URL上面的參數(shù),然后發(fā)起請求。返回的時候才以真正的json格式數(shù)據(jù)返回。 我的頁面和Action的編碼都是utf-8。碰到的問題是頁面?zhèn)魉偷紸ction的中文能夠正常顯示,但是Action通過JSON格式返回中文卻顯示亂碼。網(wǎng)上找了很多相關(guān)資料,但是都沒有解決問題。因為我的Webwork JSONResult Type是自己寫的,所以我覺得問題可能處在那里。#t#
***想到的辦法是在Action里面使用java.net.URLEncoder把中文轉(zhuǎn)碼一下,變成%EA%BC....這種格式,然后通過JSON傳到頁面上。
- try {
- temp.setContent(java.net.URLEncoder.encode("你好啊", "utf-8"));
- } catch (UnsupportedEncodingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
然后在頁面的getJSON回調(diào)函數(shù)里面用javascript的decodeURI把之前經(jīng)過轉(zhuǎn)碼的字符串轉(zhuǎn)回到中文,這樣就能正常顯示中文了。有一點需要注意,就是編碼跟解碼時候的字符集一定要一樣,否則轉(zhuǎn)換會出錯。因為GB2312和UTF-8還有其他可以表示中文的字符集在用java.net.URLEncoder轉(zhuǎn)碼之后的結(jié)果是不一樣的。所以編碼和解碼使用的字符集要對應(yīng)才行。
- decodeURI(msgs["content"])