1. 程式人生 > >android與網頁js互動 json傳參格式問題

android與網頁js互動 json傳參格式問題

如果不進行格式轉換,安卓客戶端獲取到的引數內容是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('}"', '}')