JSON知识梳理

引言:JSON跟XML一样是种数据格式,在JAVASCRIPT中读写结构化数据的更好的方式,不必创建DOM对象。而且并不是只有JS才使用JSON,毕竟JSON只是一种数据格式,很多编程语言都有针对JSON的解析器和序列化器。
内容:•JSON语法•解析JSON •序列化JSON
  1. 语法

    JSON语法可以表示一下三种类型的值。

 ♣简单值:可以是字符串、数值、布尔值、和NULL。如:“HELLO WORLD”,1,TRUE

 ♣对象:表示一组复杂的键值,允许嵌套。如:

 JSON知识梳理

数组:表示一组有序的列表,可以通过数值索引访问其中的值。如:

JSON知识梳理

    也可以把数组和对象结合起来构造复杂点的数据集合。如:

 

View Code
 1 [

 2     {

 3         "name":"cheng",

 4         "age":22,

 5         "sex":"man",

 6         "jobInfo":{

 7             "city":"上海",

 8             "Company":"某某"

 9         },

10         "skill":[

11             "c#",

12             "js",

13             "java",

14             "sqlserver"

15         ]

16     },

17     {

18         "name":"cheng",

19         "age":23,

20         "sex":"man",

21         "jobInfo":{

22             "city":"上海",

23             "Company":"某某"

24         },

25         "skill":[

26             "c#",

27             "js",

28             "java",

29             "sqlserver"

30         ]

31     },

32     {

33         "name":"cheng",

34         "age":24,

35         "sex":"man",

36         "jobInfo":{

37             "city":"上海",

38             "Company":"某某"

39         },

40         "skill":[

41             "c#",

42             "js",

43             "java",

44             "sqlserver"

45         ]

46     }

47 ]

 

2.解析与序列化。ECMASCRIPT5定义了一个原生的JSON对象,可以用来将对象序列化为JSON字符串或者将JSON数据解析为JS对象。通过stringify()和parse()方法分别实现上述两项功能。

把JS对象序列化为JSON字符串:JSON.stringify(参1[必选],参2[可选,过滤器功能,可以是数组也可以是函数],参3[可选,JSON字符串格式化比如缩进如5个空格等])

实例:

 var myInfo = {

            "name": "cheng",

            "age": 24,

            "sex": "man",

            "jobInfo": {

                "city": "上海",

                "Company": "某某"

            },

            "skill": ["c#", "js", "java", "sqlserver"]

        };

 var jsonText = JSON.stringify(myInfo, ["name", "age"], 5);

 document.write(jsonText);



显示:{ "name": "cheng", "age": 24 }可以看出通过第二个参数的过滤后只包含这两个属性。

把JSON字符串解析成JS对象:JSON.parse(参1[必选],参2[可选]一个转换结果的函数。)

    var myInfoCopy = JSON.parse(jsonText);

        document.write(myInfoCopy.name);

如果一个DATE类型序列化后,还原的时候需要经过转换的。如:

  var myInfo = {

            "name": "cheng",

            "age": 24,

            "sex": "man",

            "jobInfo": {

                "city": "上海",

                "Company": "某某"

            },

            "skill": ["c#", "js", "java", "sqlserver"],

            releaseDate:new Date(2012,9,19)

        };



    var jsonText = JSON.stringify(myInfo);

        

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

            if (key == "releaseDate") {

                return new Date(value);

            } else {

                return value;

            }

        });

       document.write(myInfoCopy.releaseDate.getFullYear());

              之前是天天看别人的博客,通过本人第一次写博客,体会到了写博客的。。。。你懂得,再次向所有博主致敬。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(json)