JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';
var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象:
JSON(JavaScript Object Notation)是JavaScript原生格式,在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
元素值可具有的类型:string, number, object, array, true, false, null
JSON有两种结构:对象和数组。
1)对象:var str2 = { "name": "cxh", "sex": "man" };
2)数组是值(value)的有序集合:
var p = {
"ids":[
{"id":001},
{"id":002},
{"id":003}
],
"names":[
{"name":"一叶扁舟"},
{"name":"无悔"},
{"name":"无悔_一叶扁舟"}
]
};
json中的五种写法:
1)传统方式存储数据,调用数据
<script type="text/javascript">
//JS传统方式下定义"类"
function Person(id,name,age){
this.id = id;
this.name = name;
this.age = age;
}
//JS传统方式下创建"对象"
var p = new Person(20141028,"一叶扁舟",22);
//调用类中的属性,显示该Person的信息
window.alert(p.id);
window.alert(p.name);
window.alert(p.age);
</script>
2)第一种样式:
<script type="text/javascript">
var person = {
id:001,
name:"一叶扁舟",
age:23
}
window.alert("编号:"+person.id);
window.alert("用户名:"+person.name);
window.alert("年龄:"+person.age);
</script>
3)第二种样式:
<script type="text/javascript">
var p = [
{id:001,name:"一叶扁舟",age:22},
{id:002,name:"无悔",age:23},
{id:003,name:"无悔_一叶扁舟",age:24}
];
for(var i = 0; i < p.length; i++){
window.alert("编号:"+p[i].id);
window.alert("用户名:"+p[i].name);
window.alert("年龄:"+p[i].age);
}
</script>
4)第三种样式:
<script type="text/javascript">
var p = {
"province":[
{"city":"福州"},
{"city":"厦门"},
{"city":"莆田"}
]
};
window.alert("所在城市:" + p.province[0].city);
</script>
5)第四种样式:
<script type="text/javascript">
var p = {
"ids":[
{"id":001},
{"id":002},
{"id":003}
],
"names":[
{"name":"一叶扁舟"},
{"name":"无悔"},
{"name":"无悔_一叶扁舟"}
]
};
for(var i = 0; i < p.names.length; i++){
window.alert("名字:"+p.names[i].name);
}
for(var i = 0; i < p.ids.length; i++){
window.alert("id:"+p.ids[i].id);
}
</script>
6)第五种样式:
<script type="text/javascript">
var p = {
"province":["福州","厦门","莆田"]
};
window.alert("城市的个数:"+p.province.length);
window.alert("分别是:\n");
for(var i=0;i<p.province.length;i++){
window.alert(p.province[i]);
}
</script>
一、JSON字符串转换为JSON对象
var obj = eval('(' + str + ')'); //由JSON字符串转换为JSON对象
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
读取对象:Alert(obj.name);
PS:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。
二、将JSON对象转化为JSON字符串。
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符,这是全局方法
读取:alert(last);
PS:eval()函数是js自带的之外,其他的几个方法都来自json.js包