您的位置:首页 > Web前端 > JavaScript

json对象与数组以及转换成js对象的方法

2016-05-04 14:25 906 查看

JSON 语法规则

JSON 语法是 JavaScript 对象表示法语法的子集。

数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组

JSON 对象

JSON 对象在花括号中书写:

对象可以包含多个名称/值对:

[javascript] view
plain copy

{ "firstName":"John" , "lastName":"Doe" }

这一点也容易理解,与这条 JavaScript 语句等价:

[javascript] view
plain copy

firstName = "John"

lastName = "Doe"

JSON 数组

JSON 数组在方括号中书写:

数组可包含多个对象:

[javascript] view
plain copy

{

"employees": [

{ "firstName":"John" , "lastName":"Doe" },

{ "firstName":"Anna" , "lastName":"Smith" },

{ "firstName":"Peter" , "lastName":"Jones" }

]

}

在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。

JSON 文件

JSON 文件的文件类型是 ".json"
JSON 文本的 MIME 类型是 "application/json"

JSON文本转换为 JavaScript 对象

JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:
var obj = eval ("(" + jsontxt + ")");


示例:

[javascript] view
plain copy

$.ajax({

type: 'POST',

url: '../../caseHandler.ashx?action=GetCase&id=' + id.toString(), //url action是方法的名称

data: "",

dataType: "text", //可以是text,如果用text,返回的结果为字符串;如果需要json格式的,可以设置为json

ContentType: "application/json; charset=utf-8",

success: function (returnedData) {

getMarkerFeature(eval("(" + returnedData+ ")"));

},

error: function (msg) {

alert("访问失败:"+ msg);

}

});

通过JavaScript创建对象数组

[javascript] view
plain copy

var employees = [

{ "firstName":"Bill" , "lastName":"Gates" },

{ "firstName":"George" , "lastName":"Bush" },

{ "firstName":"Thomas" , "lastName": "Carter" }

];

JavaScript对象属性访问的两种方式

object.attribute

object["attribute"]

例如:

var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
alert(employees[0].lastName);
alert(employees[0]["lastName"]);


[javascript] view
plain copy

var employees = [

{ "firstName":"Bill" , "lastName":"Gates" },

{ "firstName":"George" , "lastName":"Bush" },

{ "firstName":"Thomas" , "lastName": "Carter" }

];

alert(employees[0].lastName); // 方式一

alert(employees[0]["lastName"]); // 方式二

部分参考摘录自:JSON 语法 http://www.w3school.com.cn/json/json_syntax.asp
json数组对象和对象数组 http://www.cnblogs.com/zhangji/archive/2011/09/02/2163811.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: