首页 > JavaScript > JavaScript操作JSON总结

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 的内建对象里面。

分类: JavaScript 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.