58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: JSON Parse | ||
|  | localeTitle: JSON Parse | ||
|  | --- | ||
|  | ## JSON Parse
 | ||
|  | 
 | ||
|  | `JSON.parse()`方法解析字符串并构造由字符串描述的新对象。 | ||
|  | 
 | ||
|  | #### 句法:
 | ||
|  | 
 | ||
|  | ```javascript | ||
|  |     JSON.parse(text [, reviver])  | ||
|  | ``` | ||
|  | 
 | ||
|  | ##### 参数:
 | ||
|  | 
 | ||
|  | `text` 要解析为JSON的字符串 | ||
|  | 
 | ||
|  | `reviver` (可选) 该函数将接收`key`和`value`作为参数。此函数可用于转换结果值。 | ||
|  | 
 | ||
|  | 以下是如何使用`JSON.parse()`的示例: | ||
|  | 
 | ||
|  | ```javascript | ||
|  | var data = '{"foo": "bar"}';  | ||
|  |   | ||
|  |  console.log(data.foo); // This will print `undefined` since `data` is of type string and has no property named as `foo`  | ||
|  |   | ||
|  |  // You can use JSON.parse to create a new JSON object from the given string  | ||
|  |  var convertedData = JSON.parse(data);  | ||
|  |   | ||
|  |  console.log(convertedData.foo); // This will print `bar  | ||
|  | ``` | ||
|  | 
 | ||
|  | [Repl.it演示](https://repl.it/MwgK/0) | ||
|  | 
 | ||
|  | 这是`reviver`一个例子: | ||
|  | 
 | ||
|  | ```javascript | ||
|  | var data = '{"value": 5}';  | ||
|  |   | ||
|  |  var result = JSON.parse(data, function(key, value) {  | ||
|  |     if (typeof value === 'number') {  | ||
|  |         return value * 10;  | ||
|  |     }  | ||
|  |     return value;  | ||
|  |  });  | ||
|  |   | ||
|  |  // Original Data  | ||
|  |  console.log("Original Data:", data); // This will print Original Data: {"value": 5}  | ||
|  |  // Result after parsing  | ||
|  |  console.log("Parsed Result: ", result); // This will print Parsed Result:  { value: 50 }  | ||
|  | ``` | ||
|  | 
 | ||
|  | 在上面的示例中,所有数字值都乘以`10` - [Repl.it Demo](https://repl.it/Mwfp/0) | ||
|  | 
 | ||
|  | #### 更多信息:
 | ||
|  | 
 | ||
|  | [JSON.parse - MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) |