2020/2/7学习总结

今天学习了关于JSON的一些相关知识。

一、什么是JSON

    JSON全称JavaScript Object Notation(JS对象标记),是一种轻量级的数据交换格式。它相对于XML更小、更易于人阅读和编写,同时也易于机器解析和生存,并有效地提高网络传输效率。

二、JSON数据格式

    1、整体结构

        String json1 = {"name" : "Jack","sex" : "男"}

        String json2 = [{"name" : "Jack","sex" : "男"},{"name" : "Vincent","sex": "男"}]

    2、JSON对象------左花括号({ )开头,右花括号(})结尾,一个键值对为一个属性

        Json对象结构:{key1:value1,key2:value2...}

扫描二维码关注公众号,回复: 9006524 查看本文章

                a)、key的数据类型:字符串

                b)、value的数据类型:字符串、数值、null、json数组[]、json对象{}

    3、JSON数组------类似数组或序列

        JSON数组结构:[value1,value2......]

                a)、value的数据类型:字符串、数值、null、json数组[]、json对象{}

    语法规则:

        1)、数据在名称/值中,为一个键值对,表示的是对象的属性

        2)、除了最后一个属性或对象,每个属性,每个对象都必须用逗号(,)分隔

        3)、花括号({})保存对象,一对花括号表示一个对象

        4)、方括号([])保存数组,一对方括号表示一个数组

三、JSON的语法

    1)、JSON对象

        JSON对象是在花括号中书写的,对象中可以包含多个属性,多个属性之间用逗号(,)隔开。

     格式:{"name":"Vincent","sex":"男"}

    2)、JSON 对象的属性

        JSON对象属性的书写格式为:名称:值,是一个键值对。官方规定,在JSON字符串中,JSON的Key值必须用双引号标起来,而不是单引号或无引号。

     格式:"name":"Vincent"

    3)、JSON数组

        JSON对象中可以包含多个数组,用方括号([])将对象或属性包含在其中:
{ "user":[{ "name":"Vincent" , "sex":"男" }, { "name":"Jack" , "sex":"男" ,{ "name":"Tom" , "sex": "男" }]}

  

4)、JSON中使用JavaScript语法

        通过JavaScript,创建一个JSON对象数组

var user = [{ "name":"Vincent" , "sex":"男" },
{ "name":"Jack" , "sex":"男" },
{ "name":"Tom" , "sex": "男" }];
 

四、JSON的解析

    1、转换关系

        服务端:Java对象(包括集合) → JSON字符串

        客户端:JSON字符串 → Java对象(包括集合)  or  JSON字符串 → JS对象

    注意:{"name":"Vincent"}该语句表示的是JSON字符串,而{name:"Vincent"}表示的是JSON对象。前者无法直接输出。

2、JSON字符串 和 JSON对象的区别

            JSON字符串:仅仅是一个符合JSON格式的字符串,无法获取其属性值,类型为String

            JSON对象:一个符合JS对象的JSON实例化对象,可以通过指定属性获取其值,类型为Object

             

    3、JSON字符串 和 JSON对象的转换

        a)、JSON字符串 转 JSON对象  ------  调用JSON.parse()方法

             

<script type="text/javascript">
// json字符串
var user='{"name":"zzy","age":"19"}';
//json字符串强转为json对象
var userObj=JSON.parse(user);
alert(userObj.name);

</script>

        b)、JSON对象 转 JSON字符串  ------  调用JSON.stringify()方法

                

<script type="text/javascript">
//json对象
var userObj={"name":"zzy","age":"19"};
//json对象强转成json字符串
var user=JSON.stringify(userObj);
alert(user);
</script>

五、JSON对象 和 JSON字符串的语法规范

        1、JSON对象语法规范:

<script type="text/javascript">
var user1={"name":"zzy","age":"19"};
var user2={"name":"zzy","age":"19"};
alert(user1==user2);

</script>

结果:

原因:但实际上,我们每创建一个对象,都会创建一个存储区给对象,每个对象的实际地址在栈中是不一样的,所以两个对象之间彼此不相等。

2、JSON字符串语法规范

     JSON字符串其实就是一个普通的字符同,不同的是他满足JSON的语法规范而已。官方规定JSON字符串的键值对必须都包括在冒号("")之中,这是一个用于识别JSON语句的语法规范。当字符串在没有反序列化时就是一个普通的字符串,所以加不加冒号都无所谓,但是当使用JSON.stringify()方法时,表示的是将JSON字符串序列化为JSON对象,此时如果字符串不符合JSON的语法规范则会报错。



猜你喜欢

转载自www.cnblogs.com/wangzhaojun1670/p/12275616.html