标签:
JSON:JavaScript 对象表示法(JavaScript Object Notation)
JSON 语法规则
数据在 名称/值对 中
数据由逗号分隔
花括号保存对象
方括号保存数组
字符串:使用“”双引号或’’单引号包括的字符。例如:
var comStr = ‘this is string‘;
json字符串:指的是符合json格式要求的js字符串。例如:
var jsonStr = "{StudentID:‘100‘,Name:‘tmac‘,Hometown:‘usa‘}";
json对象:指符合json格式要求的js对象。例如:
var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };
在JSON中,有两种结构:对象和数组。
JSON 对象
JSON 对象在花括号中书写:
{ "firstName":"John" , "lastName":"Doe" }
JSON 数组
JSON 数组在方括号中书写,数组可以包含多个对象。
{ "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] }
访问和修改
employees[0].lastName; //访问 employees[0].lastName = "Jobs"; //修改 employees[0].address = "xxx"; // 增加; 或者employees["address"]="xxx" delete employees[0].lastName; //删除JSON中的数据 //遍历json for(var i=0;i<json.length;i++){ for(var key in json[i]){ alert(key+‘:‘+json[i][key]); } }
在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。
JSON字符串转换为JSON对象
JavaScript 函数 eval() 可用于将 JSON 文本转换为 JSON 对象。eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JSON 对象。必须把文本包围在括号中,这样才能避免语法错误;eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。
var obj = eval ("(" + txt + ")");
特别注意:如果obj本来就是一个JSON对象,那么使用eval() 函数转换后(哪怕是多次转换)还是JSON对象,但是使用JSON.parse() 函数处理后会有问题(抛出语法异常)
JSON 解析器 JSON.parse()
JSON 解析器只能识别 JSON 文本,而不会编译脚本。
obj = JSON.parse(txt);
将JSON对象转化为JSON字符串
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符串
在线解析及格式化验证
标签:
原文地址:http://www.cnblogs.com/webcome/p/5427560.html