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('}"', '}')