android與網頁js互動 json傳參格式問題
阿新 • • 發佈:2019-02-09
如果不進行格式轉換,安卓客戶端獲取到的引數內容是undefined
網上存在多種方法:
1)jQuery外掛支援的轉換方式
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以將json字串轉換成json物件
2)瀏覽器支援的轉換方式(Firefox,chrome,opera,safari,ie9,ie8)等瀏覽器:
JSON.parse(jsonstr); //可以將json字串轉換成json物件
JSON.stringify(jsonobj); //可以將json物件轉換成json對符串
eval的方式我沒測試成功,希望有測試成功的能提供例子分享下。這裡我測試使用的是第二種方法,value格式內容如下所示
JSON.stringify(value)轉換成字串之後,會發現安卓解析JSON格式會報錯,轉換後格式如下所示
轉換後會預設加上雙引號,導致安卓解析JSON的時候報格式錯誤,那我們可以採用以下方式解決這個問題
1)前後雙引號問題:
傳遞引數的時候,一般會使用“'+ value+'”包含變數,建議直接寫成'+ value +'
以下測試是不可行的方式:
JSON.stringify(value).substr(1, value.length - 1) 或
JSON.stringify(value).substr(1, JSON.stringify(value).length - 1)
2)用replace的方式替換JSON中包含JSON物件的雙引號問題
JSON.stringify(value).replace('"{', '{').replace('}"', '}')