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