若对应的json传递过来的是json对象【php中json_encode($arr) 就是json对象】。
ajax,js中,可以用 var json=JSON.parse(msg);处理转成数组。注意:JSON.parse兼容性不好,还是推荐用:eval(“(“+msg+”)”);转成对象。
但是若接口文件php中直接输出的是json字符串,则我们需要使用:
//我们需要将eval()方法将这个字符串包一下,就可以转成JSON对象了
var json = eval(‘(‘ + msg + ‘)’);
如果用错了,会报错的!
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON
一定要区分开!
模拟JS代码如下:
<script src="jquery.min.js"></script>
<script>
$.ajax({
type: "POST",
url:"http://127.0.0.1/jk/json.php",
//url: "https://api.miaodiyun.com/20150822/industrySMS/sendSMS",
// data: "accountSid=c754405c64bd493188b56a5b781dc5ff&smsContent=【秒嘀科技】您的验证码是345678,30分钟输入有效。 &to=13896543210×tamp=20150821100312&sig=96d3adac3d2f43b8a85b0aeb201ab2be&respDataType=JSON",
success: function(msg){
// alert( "Data Saved: " + msg );
//var json=JSON.parse(msg);//这个不行,用下面的
var json = eval('(' + msg + ')');
// alert(json.respDesc);
var respDesc=json.respDesc;
alert(respDesc);
// if(respDesc=="成功"){
//alert('接收成功');
// }
//alert(11);
}
});
</script>
模拟接口文件代码:
<?php
$str=<<<xdw
{
"respCode":"00000",
"respDesc":"成功",
"failCount":"1",
"failList":
[
{
"phone":"13896543210",
"respCode":"00111",
"respDesc":"匹配到黑名单",
}
],
"smsId":"913945fec0204b1e94baa75a5c013f59"
}
xdw;
echo $str;//这里输出的是json字符串,不是对象。
?>