JSON语法
JSON(
JavaScript Object Notation
),是ECMAScript
的子集,作用是进行数据的交换,而且由于语法更为简洁,网络传输,以及机器解析都更为迅速.
- 语法规则:
- 数据在键值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
-
数据类型:
下列内容 无论 键 值 都是用双引号包起来
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
-
示例代码 下部分代码看起来类似于定义
JavaScript
对象// 基本对象 { "name":"fox", "age":"18", "sex":"true", "car":null } // 数组 [ { "name":"小小胡", "age":"1" }, { "name":"小二胡", "age":"2" } ]
JSON解析
接下来演示如何使用
JavaScript
和PHP
对JSON
进行解析
JavaScript 中
-
使用
JSON
对象- JSON.parse()方法:将
JSON
字符串转化为JavaScript
对象 - JSON.stringify()方法:将
JavaScript
对象,转化为JSON
字符串 -
由于老式
IE(8以下)
浏览器中没有JSON
对象,通过导入JSON2.js
框架即可解决,框架获取地址为:JSON2.js_github地址var Obj = { name:"fox", age:18, skill:"撩妹" }; console.log(Obj); // 将JavaScript对象格式化为JSON字符串 var jsonStr = JSON.stringify(Obj); console.log(jsonStr); // 将JSON字符串转化为JavaScript对象 var jsonObj = JSON.parse(jsonStr); console.log(jsonObj);
- JSON.parse()方法:将
-
使用
eval()
方法 使用eval()
方法需要注意的是,需要将内容使用()括号
包裹起来,如示例代码``javascript <script type="text/javascript"> var jsonStr =
{"name":"fox", "age":18, "skill":"撩妹"
}`;
var jsonObj = eval('('+jsonStr+')'); console.log(jsonObj);
</script>
### PHP中
* **json_decode()**方法: 将`json`字符串转化为变量
* **json_encode()**方法: 将变量转化为`json`字符串
* **示例代码:**
```php
<?php
header("Content-Type:text/html;charset=utf-8");
// json字符串
$jsonStr = '{"name":"itcast","age":54,"skill":"歌神"}';
// 字符串转化为 php对象
print_r(json_decode($jsonStr));
echo "<br>";
// php数组
$arrayName = array('name' =>'littleFox' ,'age' => 13 );
// php对象 转化为 json字符串
print_r(json_encode($arrayName));
?>
- 输出结果为:
stdClass Object ( [name] => itcast [age] => 54 [skill] => 歌神 ) {"name":"littleFox","age":13}