一般数据类型有以下几种类型(区分JS数据类型):
1,标量(scalar),也就是一个单独的字符串(string)或数字(number)
2,序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组
3,映射(mapping),也就是一个名/值对(Name/value)
JS的数据类型有以下几种:
1,String,
2,Number
3,Boolean
4,Undefined
5,Null
6,Symbol
7,Object->Array,Function,Date,Error,...
JSON 支持的格式没有symbol和undefined,支持Number类型但不含NaN;
JSON 语法规则:
1,数据在名称/值对中
2,数据由逗号分隔
3,花括号保存对象
4,方括号保存数组
JSON的名称必须是用“ ”包含的也就是“string”;
所以JSON只是一个数据格式,这种格式也分三种:
1,JSON字符串 可以这么写但不是合法的JSON数据(目的只是作为字符串便于传递)
下面数组和对象要转换为这种格式
var json = '{"name" : "obama","age": 73}';
2,JSON数组
var jsonArray = ["obama","bush","cliton",null];
3,JSON对象
var jsonObj = {
"name" : "obama",
"age" : 73
}
以上三种都是JSON格式的数据类型;
但在一般程序中作为数据传递的话,一般都是作为文本Text传递的较多,也就是字符串,因此有专门的方法,
var json = '{"name" : "obama","age" : 73 }';
//如果直接使用的话,得到的只是一个字符串,因此需要转化为Object;
//json.name -> undefined
var jsonStr = eval("("+json+")");
//之所以在eval函数的内部在添加一个括号,如果没有的话,函数会直接解析掉外部的大括号,最终报错,这不是一个好的方法;
//使用es5的方法
var jsonStr = JSON.parse(json); //{"name" : "obama","age" : 73}
jsonStr.name = 'obama';
//或者将JSON对象转换为字符串,便于使用
var jsonObj = {
"name" : "obama",
"age" : 73
}
var jsonStr = JSON.stringify(jsonObj); //"{"name":"obama","age":73}";
typeof jsonStr ==='string' //true
//需要注意的是使用JSON方法得到的都是深度拷贝,是两个不同的数据,
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。