Json是JavaScript对象表示法(JavaScript Object Notation)
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
- Json是纯文本
- Json具有“自我描述性”(人类可读)
- Json具有层级结构(值中存在值)
- Json可通过JavaScript进行解析
- Json数据可使用Ajax进行传输
Json语法是JavaScript语法的子集
Json语法规则
- 数据在键值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
Json键值对
Json的数据书写格式是:键值对
"name" : "czy"
// 等价于JavaScript语句
name = "czy";
Json值
Json值可以是如下类型:
- 数字(整数或浮点数)
- 字符串
- 布尔类型
- 数组(用方括号包起来)
- 对象(用花括号包起来)
- null
Json对象
Json对象在花括号中书写:
对象可以包含多个键值对:
{ "name" : "czy", "age" : 18}
Json数组
Json数组在方括号中书写:
数组可以包含多个对象:
// 对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人的记录
{
“employees” : [
{"name" : "aaa", age : 18},
{"name" : "ssss", age : 17},
{"name" : "Jane", age : 16}
]
}
最近研究extjs中Json解析问题,其中JSON转化问题,直接见测试代码:
<meta charset="utf-8">
<title>Welcome to Ext JS 4.2</title>
</head>
<script type="text/javascript" src="ext-all-debug-w-comments.js"></script>
<script type="text/javascript" src="locale/ext-lang-zh_CN.js"></script>
<link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" />
<body>
<script>
//json对象转json字符串(原生)
var str = { "name": "小红", "sex": "女性" };
var obj = eval(str);
alert(obj.name+"---对象转字符串,原生方法--"+obj.sex);
//json对象转json字符串(使用JSON2.js中方法)
var last= JSON.stringify(str);
alert(obj.name+"---对象转字符串,使用JSON2.js中JSON.stringify()方法---"+obj.sex);
//json字符串转json对象(js原生方法)
var str1 = '{ "name": "小兰", "sex": "男性" }';
var obj1 = eval('('+str1+')');
alert(obj1.name+"---字符串转对象,原生方法---"+obj1.sex);
//json字符串转json对象(使用JSON2.js中方法)
var obj1 = JSON.parse(str1);
alert(obj1.name+"---字符串转对象,使用JSON2.js中JSON.parse()方法---"+obj1.sex);
</script>
</body>
</html>
测试代码效果: