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格式内容如下所示

android与网页js交互 json传参格式问题_第1张图片

JSON.stringify(value)转换成字符串之后,会发现安卓解析JSON格式会报错,转换后格式如下所示

android与网页js交互 json传参格式问题_第2张图片

转换后会默认加上双引号,导致安卓解析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('}"', '}')

你可能感兴趣的:(VUE,android交互)