JSON学习小结

JSON是javascript的一个严格的子集,它是利用javascript中的一些模式来表示结构化数据,是一种类似于XML的结构数据规范,对比XML文件中大量的标签,JSON就显得非常简洁,学习有关JSON的知识可以去w3school中JSON专题部分。

(一)JSON语法

JSON和XML类型类似,都是一种结构化的数据表示方式。所以,JSON并不是javascript独有的数据格式,其他很多语言都可以对JSON进行解析和序列化。

JSON的语法可以表示三种类型的值:

1、简单值:可以用JSON表示字符串、数值、布尔型和null,但是不能表示undefined。如可以用JSON表示简单值:100、"Hello"、true、null。

2、对象:可以用JSON表示对象。

<script type="text/javascript">
	var person = {
		"name" : "yedward",
		"age" : "23"
	};
</script>

3、数组:可以用JSON表示数组。

<script type="text/javascript">
	// json表示数组
	var arr = [ 1, 2, 3, "hello", true ];
</script>

一般情况下,可以把JSON结构数据保存到一个文本文件里面,然后通过XMLHttpRequest对象去加载它,得到这串结构数据字符串。

(二)解析

如果是载入的JSON文件,我们需要使用它,就必须将JSON字符串解析成原生的javascript值。当然,如果是原生的javascript对象或数组,也可以转换成JSON字符串。对于将JSON字符串解析成javascript原生值,早期采用的是eval()函数,但这种方式不安全,可能会执行一些恶意代码。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>javascript</title>
<script type="text/javascript">
	var persons = '[{"name":"yed01", "age":23}, {"name":"yed02", "age":22}]';
	alert(persons); // 输出一个字符串
	alert(eval(persons)); // 输出结果是:[object Object],[object Object]
	alert(eval(persons)[0].name); // 输出结果是:yed01
	alert(eval(persons)[1]["name"]); // 输出结果是:yed02
</script>
</head>
<body>
</body>
</html>

eval()方法解析不安全,可以考虑使用ECMAScript5规定提供的JSON对象,该对象里面提供了一些解析的方法。对于有些浏览器还不支持ECMAScirpt5的情况,可以使用json2.js这个库来调用,这里暂不总结。

本文只是简单的总结,以后用到的时候再来慢慢补充。

本文标题:JSON学习小结

本文链接:http://yedward.net/?id=257

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章