JSON学习及解析

6 篇文章 0 订阅

JSON认识


    JSON:JavaScript对象表示法(JavaScript ObjectNotation)。是存储和交换文本信息的语法。类似 XML这也是我们经常拿来和XML对比的原因。

    在web中进行数据传输上相比XMLJSON有很大的优势,这得益于JSONJavascript的原生格式,所谓原生格式就是使用时不需要引入任何组件和类库,就支持json格式,这么说是有原因的,在IE 5之前js是不支持json格式的,为了使用json格式,必须引入一个json.js的文件,但以后新的版本的游览器都开始支持这一格式,所以对现在的的浏览器都不需要引入这个文件了,就是说json变成了js的原生格式了。

 

JSON语法


首先通过一个实例认识:

{ people: [

{ Name: "A", Age:"23" },

{ Name: "B", Age:"24" }

]}

{ people1: [

{ Name: "C", Age:"23" },

{ Name: "D", Age:"24" }

],

people2: [

{ Name: "E", Age:"23" },

{ Name: "F", Age:"24" }

]

} 

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

其语法格式说明:

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

例如{ Name: "A",Age:"23" },与下面这条JavaScript 语句等价:

Name ="A"

Age ="23"

 

JSON使用

 

    作为数据交换格式,JSONXML一样具有语言无关性的特点,可以在web传递数据。在Web项目中,JSON传输数据的过程基本如下

    首先,浏览器通过JavaScript创建对象,并把对象转换成JSON字符串,以Ajax请求方式发送字符串到服务器。

    然后,服务器端解析收到的JSON字符串,并创建一个类实例,执行相关业务逻辑,通过创建新的对象来存储要返回客户端的数据,即把这个对象转换成JSON字符串并返回到浏览器。

    最后,浏览器通过JavaScript解析收到的JSON字符串,并将其转换为预定义的对象,之后使用该对象完成对页面元素的更新。

以上整个过程基本是JSON在进行数据传递的一个过程。

 

JSON对象转换成字符串

varobj1=obj.toJSONString();

//或者

varobj1=JSON.stringify(obj);

alert(obj1);


JS解析JSON

    所谓解析JSON,就是从web 服务器上读取JSON 数据,将 JSON 数据转换为JavaScript 对象,然后在网页中使用该数据。

以下通过简单的JSON字符串形式进行实例说明。

 

创建包含 JSON 语法的 JavaScript 字符串:

 

var txt = '{"people" : [' +

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

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

'{"firstName":"Thomas" ,"lastName":"Carter" } ]}';


     Javascript解析JSON,将JSON 文本转换为 JavaScript 对象有两种方式:

    1eval()函数

    由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为JavaScript 对象。

格式如下:       

var obj = eval("(" + txt + ")");

     2、使用json.js解析JSON

    使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON文本,而不会编译脚本。


varobj = txt.parseJSON(); 


学习小结

    以上通过比较简单的分析和实例对JSON有了基本的认识,对以后的项目实践JSON使用中打下一个基础,肯定还需要不断的学习和实践,知识首先重在认识,其次理解,最后是应用,当然认识、理解和应用这些都是相辅相成的,生命不息,学习不止。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值