• JSON对象和JSON字符串以及JSON.parse 函数的使用


    <!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字符串转换成对象或数组。



  • 相关阅读:
    winfrom 中datagridview中checkbox的使用方法
    转 webservice中参数类型为datatable,报错“生成 XML 文档时出错”
    Oracle将表空间改为自动扩展
    Oracle 动态建立分区表
    运用ASMIOSTAT脚本监控asm disk磁盘性能
    ASMCMD命令
    select * from salgrade for update和select * from salgrade for update nowait区别
    Oracle 10g Block Change Tracking特性
    分佈式事務故障處理暨ORA-24756: transaction does not exist處理
    shell test 數值 字符串 文件比較
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6746953.html
Copyright © 2020-2023  润新知