JavaScript操作JSON总结
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。
本文主要对JavaScript中的JSON操作做下总结。
在JSON中,有两种结构:对象和数组。
1.一个对象以”{“(左大括号)开始,”}”(右大括号)结束。每个”名称”后跟一个”:”(冒号):”‘名称/值'”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。
e.g #1:
var o={"name":"qiufeng","age":24,"sex":"boy","website":"fengdingbo.com"}; |
2. 数组是值(value)的有序集合。一个数组以”[“(左中括号)开始,”]”(右中括号)结束。值之间使用”,”(逗号)分隔。
e.g #2:
var jsonArrayList=[ {"name":"qiufeng","age":24,"sex":"boy","website":"fengdingbo.com"}, {"name":"fengdingbo","age":23,"sex":"boy","website":"www.fengdingbo.com"} ]; |
在数据传输过程中,json是以文本,即字符串的形式传递的,而JavaScript操作的是JSON对象,所以JSON对象和JSON字符串之间的相互转换是关键。
e.g #3:JSON字符串
var str = '{"name":"qiufeng","age":24}'; |
e.g #4:JSON对象:
var jsonObject = {"name":"qiufeng","age":24}; |
一、JSON字符串转换为JSON对象
要使用上面的str,必须使用下面的方法先转化为JSON对象:
// 由JSON字符串转换为JSON对象 // 加上圆括号的目的是迫使eval函数在处理JavaScript代码时 // 强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行 // 使用eva来解析JSON字符串是很危险的,容易将一些置于字符串中的危险代码一并执行, var obj = eval("(" + str + ")"); |
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象 |
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。
二、可以使用JSON.stringify()将JSON对象转化为JSON字符串。
e.g #5:
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符 |
ps:上面的多个要领中,除了eval()函数是js自带的之外,其他的都需要引入json.js包。新版本的JSON修改了API,将JSON.stringify()和JSON.parse()两个要领都注入到了 Javascript 的内建对象里面。