Json研究系列之——入门简介

引言

        由于没有系统的学习,所以只是在项目中总是用到json,没有真正的总结过json。不能这样,还是抽个时间来说说吧……

Json简介

         JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

        我们都知道XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。

Json语法规则

         1、数据在键值对中

         2、数据由逗号分隔

         3、花括号保存对象

         4、方括号保存数组

Json的两种结构

   对象

         对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔。例如:

<span style="font-size:18px;">{
   key1:value1,
   key2:value2,
   ...
}</span>

       其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组

数组

        数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成。例如:

<span style="font-size:18px;">[
    {
       key1:value1,
       key2:value2
   },
    {
        key3:value3,
        key4:value4  
    }
]</span>


字符串、json字符串和json对象

         字符串:指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';

         Json字符串:指的是符合json格式要求的js字符串。例如:varjsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";

         Json对象:指符合json格式要求的js对象。例如:varjsonObj = { StudentID: "100", Name: "tmac", Hometown:"usa" }

Json.parse——将json格式的字符串转换成json对象

<span style="font-size:18px;">var str ='{"name":"小强","age":16,"msg":["a","b"],"regex":"^http://.*"}';
var json = JSON.parse(str);
console.log("name:" + json.name);
console.log("msgLen:" +json.msg.length);
 
// 结果
// name:小强
// msgLen:2</span>

Json.stringify——将json对象转换成json格式的字符串

<span style="font-size:18px;">var json = {"name":"小强","age":16,"msg":["a","b"],"regex":"^http://.*"};
var str = JSON.stringify(json);
console.log("json:" + str);
console.log("jsonLen:" +str.length);
 
// 结果
// json:{"name":"小强","age":16,"msg":["a","b"],"regex":"^http://.*"}
// jsonLen:60</span>

Json优点

1、  简化了数据访问

        在json中使用的这些数据分隔符, JavaScript引擎对数据结构(如字符串、数组、对象)的内部表示恰好与这些符号相同。这将开创一条比DOM技术更为便捷的数据访问途径。

2、  非冗长性

        在XML中,打开和关闭标记是必需的,这样才能满足标记的依从性;而在JSON中,所有这些要求只需通过一个简单的括号即可满足。在包含有数以百计字段的数据交换中,传统的XML标记将会延长数据交换时间。目前还没有正式的研究表明JSON比XML有更高的线上传输效率;人们只是通过简单的字节数比较发现,对于等效的JSON和XML有效负载,前者总是小于后者。至于它们之间的差距有多大,特别是在新的XML压缩格式下它们的差距有多大,有待进一步的研究。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 41
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值