Json操作

JSON操作

var book = {

                title: "js",

                authors: ["zhang"],

                edition: "3",

                year: 2011,

                test:undefined

            };

            var jsonText = JSON.stringify(book);//{"title":"js","authors":["zhang"],"edition":"3","year":2011}

            console.log(jsonText);

 

            var json = JSON.parse(jsonText);

            console.log(json.title);//js

在序列化JavaScript对象时,所有函数及原型成员会被忽略,另外,值为undefined的属性也会被忽略。

JSON.stringify()

该方法可以传递两个参数,第一个参数是过滤器,可以是一个数组或方法,第二个参数是一个选项,表示是否在json字符串中保留缩进。

传递数组

 

 var jsonText = JSON.stringify(book, ["title", "year"]);//{"title":"js","year":2011}

 

传递方法

var jsonText = JSON.stringify(book, function (key,value) {

                switch (key) {

                    case "authors":

                        return value.join(",");

                    case "year":

                        return 5000;

                    case "edition":

                        return undefined;

                    default:

                        return value;

                }

            });//{"title":"js","authors":"zhang","year":5000}

注意一定要提供default项,以便其他值能正常出现在结果中。

字符串缩进

var jsonText = JSON.stringify(book, null,4);//格式缩进

{

    "title": "js",

    "authors": [

        "zhang"

    ],

    "edition": "3",

    "year": 2011

}
var jsonText = JSON.stringify(book, null,"- -");//格式缩进

{

- -"title": "js",

- -"authors": [

- -- -"zhang"

- -],

- -"edition": "3",

- -"year": 2011

}

Json.Parse()

该方法也会接收一个参数,为一个function,表示还原函数进行操作。

var book = {

                title: "js",

                authors: ["zhang"],

                edition: "3",

                year: 2011,

                test: undefined,

                replaseDate:new Date(2011,11,1)

            };

            var jsonText = JSON.stringify(book);//{"title":"js","authors":["zhang"],"edition":"3","year":2011,"replaseDate":"2011-11-30T16:00:00.000Z"}

            console.log(jsonText);

 

            var json = JSON.parse(jsonText, function (key, value) {

                if (key == "replaseDate") {

                    return new Date(value);

                }

                else {

                    return value;

                }

            });

            console.log(json.replaseDate);//Thu Dec 01 2011 00:00:00 GMT+0800 (中国标准时间)

 

posted @ 2016-04-25 09:27  8932809  阅读(165)  评论(0编辑  收藏  举报