代码改变世界

JS 的JSON对象

2019-08-16 10:46  zyueer  阅读(...)  评论(... 编辑 收藏

知识点一:

循环对象

for(x in Obj)  x表示属性,Obj.x表示属性的值。

修改值

Obj.x = "  "//直接修改

删除对象属性

delete Obj.x

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
test.length   //输出为 3
delete test[1];
test.length   //输出仍为 3

查询运算符 delete 我们知道它只是将该值置为 undefined,而不会影响数组长度,即将其变为稀疏数组(《JS权威指南》7.5节)。

其实这种方法并不是彻底删除元素,而是删除它的值,但仍会保留空间。

如何彻底删除?

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
test.length   //输出为 3
test.splice(1, 1);
test.length   //输出为 2

知识点二: 

JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。

JSON.parse()

常用于,与服务器交换数据,接收服务器的数据一般为字符串,将数据转换为 JavaScript 对象。

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
var obj = JSON.parse(text, function (key, value) {
    if (key == "initDate") {
        return new Date(value);
    } else {
        return value;
}});
 
document.getElementById("demo").innerHTML = obj.name + "创建日期:" + obj.initDate;

JSON.stringify() 

常用于,与服务器交换数据,向服务器发送的数据一般为字符串,将数据转换为字符串。

var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
var myJSON = JSON.stringify(obj);
//myJSON 为字符串。我们可以将 myJSON 发送到服务器。