JSON的学习
这期我们学习JSON,JSON跟JavaScript有很多相似的地方,所以我们先从JavaScript的数据类型说起:
js 数据类型
值类型 String(字符串) Number(数值) Boolean(布尔) Null(空值) Undifinied(未定义)
引用类型 Object(对象)
var str=”hello world”;==>String
var str=”123”; ==>Number
var str=”true”; ==>Boolean
var str=””; ==>Null
var str; ==>Undifinied
console.log(typeof str);
object 自定义对象 宿主对象 内建对象
(Date Array Nath Regex String Number Boolean)
创建js对象的方法
第一种:使用构建函数创建对象
var obj= new Object();
obj.name=”zhangsan”;
obj.age=23;
obj[“adress”]=”广州市”;
console.log(obj.name);
属性值可以是那些数据类型?
回答:所以的数据类型都可以。
第二种创建对象的方法
通过字面量的方式创建对象
var obj={
Name:”zhangsan”,
Age:23,
Adress:”guangzhoushi”
};
var boss={
Name:”mayun”,
Age:40,
Emp:[
{
Name:”xiaowang”,
Age:20
},
{
Name:”xiaoming”,
Age:20
}
];
boss就是 js对象
JSON简介
Json:javaScript对象表示法(javaScript object Notation)
JSON是存储和交换文本信息的语法:
- JSON是轻量级的文本数据交换格式
- JSON独立于语言和平台
- JSON具有自我描述性,更容易理解。
类似于xml,比XML更小,更快,更容易解析
(XML:指可扩展标记语言。XML被设计用来传输和存储数据。)
JSON语法
JSON语法是JavaScript对象表示语法的子集
- 数据在名称/值对中(数据在键值对中)
- 数据用逗号分隔
- 花括号保存对象({ })
- 方括号保存数组([ ])
JSON值可以是:
数字(整数或浮点数)
字符串(在双引号中)
布尔值(true或false)
数值(在方括号中)
对象(在花括号中)
Null
js对象的属性值:
js的数据类型:string number boolean undefinied
var obj ={
“name”:” 张三”,
Sex:”男”,
Age:23
};
JSON对象与JS对象有2个地方不一样:
1.没有声明变量(JSON中没有变量的概念)
2.末尾没有分号(因为这不是JavaScript语句,所以不需要分号)
{
“name”:”张三”,
“sex”:”男”,
“age”:”23”,
“address”:”九王庙”,
}
Js中有个对象obj ==> c#中的一个方法
Obj==>json对象 c#就可以获取数据
JSON数组(在方括号中写,数组可包括多个对象)
var book = [23,”hello”,true];
这是js中的数组
在JSON中,可以采取同样的语法表示一个数组
[23,”hello”,true]
同样注意:JSON数组中没有变量和分号。
var boss = {
name: "mayun",
age: 40,
emp: [
{
name: "xianwang",
age: 20,
},
{
name: "xianming",
age: 20,
},
]
};
console.log(typeof boss);
JSON.stringify(js对象)
将js对象转换为json数据格式的字符串
var str = JSON.stringify(boss);
console.log(str);
console.log(typeof str);
JSON.parse(Json对象)[pɑ:z] :
将JSON字符串解析为原生的JS值
var jsonStr = '{"name":"mayun","age":40,"emp":[{"name":"xiaowang","age":20},{"name":"xiaoming","age":20}]}';
var o = JSON.parse(jsonStr);
console.log(o);
console.log(typeof o);
输出如下: