55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Working With JSON APIs
							 | 
						|||
| 
								 | 
							
								localeTitle: 使用JSON API
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								## 使用JSON API
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								JSON的一个常见用途是从Web服务器读取数据,并在网页中显示数据。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								本章将教您如何在客户端和PHP服务器之间交换JSON数据。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### PHP文件
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								PHP有一些内置函数来处理JSON。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								可以使用PHP函数`json_encode()`将PHP中的对象转换为JSON:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```php
							 | 
						|||
| 
								 | 
							
								<?php 
							 | 
						|||
| 
								 | 
							
								 $myObj->name = "John"; 
							 | 
						|||
| 
								 | 
							
								 $myObj->age = 30; 
							 | 
						|||
| 
								 | 
							
								 $myObj->city = "New York"; 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 $myJSON = json_encode($myObj); 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 echo $myJSON; 
							 | 
						|||
| 
								 | 
							
								 ?> 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[试试吧](https://www.w3schools.com/js/showphp.asp?filename=demo_file)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 客户端JavaScript
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								这是客户端上的JavaScript,使用AJAX调用从上面的示例请求PHP文件:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### 例
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								使用JSON.parse()将结果转换为JavaScript对象:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```js
							 | 
						|||
| 
								 | 
							
								var xmlhttp = new XMLHttpRequest(); 
							 | 
						|||
| 
								 | 
							
								 xmlhttp.onreadystatechange = function() { 
							 | 
						|||
| 
								 | 
							
								    if (this.readyState == 4 && this.status == 200) { 
							 | 
						|||
| 
								 | 
							
								        var myObj = JSON.parse(this.responseText); 
							 | 
						|||
| 
								 | 
							
								        document.getElementById("demo").innerHTML = myObj.name; 
							 | 
						|||
| 
								 | 
							
								    } 
							 | 
						|||
| 
								 | 
							
								 }; 
							 | 
						|||
| 
								 | 
							
								 xmlhttp.open("GET", "demo_file.php", true); 
							 | 
						|||
| 
								 | 
							
								 xmlhttp.send(); 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[试试吧](https://www.w3schools.com/js/tryit.asp?filename=tryjson_php_simple)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 更多信息:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   有关更多信息, [请查看此链](https://www.w3schools.com/js/js_json_php.asp)
							 |