標籤:err first org 1.0 dtd json contact ajax tac
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>JSON.parse()</title><script type="text/javascript">//示範範例1:此示範範例使用 JSON.parse 將 JSON 字串轉換為對象var jsontext = ‘{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}‘;//JSON 字串var contact = JSON.parse(jsontext);document.write(contact.surname + ", " + contact.firstname + ", "+ contact.phone);//示範範例2:和執行個體1是一樣的效果var jsontext2 = {"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]};//JSON 對象//var contact2 = JSON.parse(jsontext2);document.write("<br /><br />"+jsontext2.surname + ", " + jsontext2.firstname + ", "+ jsontext2.phone);</script></head><body></body></html>
輸出:
Aaberg, Jesper, 555-0100,555-0120
Aaberg, Jesper, 555-0100,555-0120
************************************************************************************
前端頁面接收JSON對象的執行個體:
<script>sendRecord(‘1‘);function sendRecord(record){var req = {user_id:<?php echo $userId;?>,record:record,}$.ajax({url: "./a.php",type:"post",data:req,dataType:"JSON", //返回資料格式為JSON對象success: function(res){ alert(Object.prototype.toString.apply(res));//alert輸出[object Object],不用JSON.parse()解析if(res.result==1){alert(‘11‘);}else if(res.result==2){alert(‘22‘);}else if(res.result==3){alert(‘33‘);}},error: function(){alert(‘error000‘);console.log(this);}});}</script>a.php
<?php$record = $_POST[‘record‘];if ($record==1) { $json[‘result‘] = 1; }elseif($record==2){$json[‘result‘] = 2;}elseif($record==3){$json[‘result‘] = 3;}$json = json_encode($json);echo $json; //{"result":1}?>
***************************************************************************
<script type="text/javascript" src="./jquery.min.js"></script><script>sendRecord(‘2‘);function sendRecord(record){var req = {record:record,}$.ajax({url: "./b.php",type:"post",data:req,dataType:"JSON", //返回資料格式為JSON對象success: function(res){//加上dataType:"JSON",alert輸出[object Array],不須要JSON.parse()解析//不加dataType:"JSON",alert輸出[object String],須要JSON.parse()解析alert(Object.prototype.toString.apply(res));//var res2 = JSON.parse(res);alert(res);},error: function(){alert(‘error000‘);console.log(this);}});}</script>b.php
<?php$record = $_POST[‘record‘];if ($record==1) { $json = array(‘a‘,‘aa‘); }elseif($record==2){$json = array(‘b‘,‘bb‘); }elseif($record==3){$json = array(‘c‘,‘cc‘); }$json = json_encode($json);echo $json; //["b","bb"]?
>
總結:假設後台是通過echo json_encode();輸出json字串的話,並且前台使用了dataType:"JSON", 那麼則不須要JSON.parse();把json字串轉換成對象或數組。
JSON對象和JSON字串以及JSON.parse 函數的使用