JSON使用

JSON

  • JSON简介

JSON:JavaScript对象表示法(JavaScript Object Notation)

JSON是存储和交换文本信息的语法:

  1. JSON是轻量级的文本数据交换格式
  2. JSON独立于语言和平台
  3. JSON具有自我描述性,更容易理解。类似于xml,比xml更小、更快、更易解析(XML指可扩展标记语言。XML被设计用来传输和存储数据。)

js中的一个对象obj ==> c#中的一个方法

obj  c#就可以获取数据

(一)类似XML

-JSON是纯文本

-具有“自我描述性”

-具有层级结构(值中存在值)

-可通过JavaScript进行解析

-数据可使用AJAX进行传输

-可被大多数编程语言使用

(二)不同于XML

-没有结束标签

-更短

-读写的速度更快

-能够使用内建的JavaScript eval()解析

-使用数组

不使用保留字

最大的不同是:

XML需要使用XML解析器来解析,JSON可以使用标准的JavaScript函数来解析。

JSON比XML更好:

XML比JSON更难解析。

JSON可以直接使用现有的JavaScript对象解析。

针对AJAX应用,JSON比XML数据加载更快,而且更简单。

使用XML

-获取XML文档

-使用XML DOM迭代循环文档

-接数据解析出来复制给变量

使用JSON

-获取JSON字符串

-JSON.Parse解析JSON字符串

  • JSON语法

JSON语法是JavaScript对象表示语法的子集

  1. 数据在名称/值对中(数据在键值对中)
  2. 数据由逗号分隔
  3. 花括号保存对象({})
  4. 方括号保存数组([])

JSON数据的书写格式:

Key:value

JSON值可以是:

数字(整数或浮点数)

字符串(在双引号中)

布尔值(true or false)

数组(在方括号中)

对象(在花括号中)

Null

就是没有undefined

三、JSON对象与js对象的区别

1.JSON对象没有变量声明(JSON中没有变量的概念)

2.JSON末尾没有分号(因为这不是JavaScript语句,所有不需要分号)

{

“name”:”zhnagsan”,

“age”:23,

“sex”:”男”

}

  1. JSON对象在大括号{}中书写:

{key1:value1,key2:value2,......keyN:valueN}

四、JSON数组

(在方括号中书写,数组可以包含多个对象)

-Var book=[23,”hello”,true];//js中的数组

在JSON中,可以采用同样的语法表示一个数组

-[23,”hello”,true]//JSON中的数组

注意JSON数组中也没有变量和分号

-把数组和对象结合起来,可以构成更加复杂的数据集合,例如:

Json数组和对象结合的数据集合

{

“employees”:[

    { "firstName": "Bill", "lastName": "Gates" },

     { "firstName": "George", "lastName": "Bush" },

     { "firstName": "Thomas", "lastName": "Carter" }

]

}

  • 解析与序列化(将JavaScript对象转化为json对象)

JSON对象有两种方法:

Stringify():将JS对象转换为JSON字符串

JSON.stringify(value[,replacer[,space]])

Value:必需,要转换的JavaScript值(通常为对象或数组)

Replacer:可选,用于转换结果的函数或数组

Space:可选,文本添加缩进、空格和换行符。

Parse()[pa:z]:将JSON字符串解析为原生的JS值

  var str = JSON.stringify(obj);//将JS对象序列化为JSON字符串

        console.log(str);

        console.log(typeof str);//string

        var jsonstr = '{"employees":[{"firstName":"Bill","lastName":"Gates"},{"firstName":"George","lastName":"Bush"},{"firstName":"Thomas","lastName":"Carter"}]}';

        var obj1 = JSON.parse(jsonstr);//将JSON字符串解析为原生的JS对象

        console.log(obj1);

        //注意:虽然obj与obj1具有相同的属性,但它们是两个独立的、没有任何关系的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值