一般数据类型有以下几种类型(区分JS数据类型):
1,标量(scalar),也就是一个单独的字符串(string)或数字(number)2,序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组3,映射(mapping),也就是一个名/值对(Name/value)JS的数据类型有以下几种:
1,String,2,Number3,Boolean4,Undefined5,Null6,Symbol7,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方法得到的都是深度拷贝,是两个不同的数据,