json是存储和交换文本信息的语法,全称为JavaScript Object Notation,即JavaScript 对象表示法。
有两种表示形式:
{
"book": [{
"id": "01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
},
{
"id": "07",
"language": "C++",
"edition": "second",
"author": "E.Balagurusamy"
}
]
}
或
[{
"id": "01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
}, {
"id": "07",
"language": "C++",
"edition": "second",
"author": "E.Balagurusamy"
}]
关于json的校验工具,可以使用在线的网址:
点击打开链接
json数据从后端传到前端时,常常要要把它解析成json格式的js对象,常用的方法时eval,用法时:
eval("("+data+")");
值得注意,为什么要 eval这里要添加 ("("+data+")"),原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式;还有,从后端传过来只是一段json字符串才需要使用eval方法,如何使用ajax,指定传输格式json时,不必使用eval;jquery中也有一个方法支持json数据解析:
$.parseJSON(data)
接下来,说下如何取包含 JSON 语法的 JavaScript 字符串和json格式的js对象:
1、
<script>
var obj2='{"firstName": "cyra", "lastName": "richardson"}';
var obj3 =eval('('+obj2+')');
for(var str in obj3){
console.log(str+'='+obj3[str]);
}
</script>
结果为:
2、
<script>
var obj=[{"firstName": "cyra", "lastName": "richardson"}];
var obj1={"person":{"firstName": "cyra", "lastName": "richardson"}};
for(var str in obj){
console.log(str+'='+obj[str].firstName);
}
for(var str in obj1){
console.log(str+'='+obj1.person.firstName);
}
</script>
结果: