前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSON入门指南--客户端处理JSON

JSON入门指南--客户端处理JSON

作者头像
八哥
发布2018-01-18 16:09:57
1.3K0
发布2018-01-18 16:09:57
举报
文章被收录于专栏:快乐八哥快乐八哥

在传统的Web开发过程中,前端工程师或者后台工程师会在页面上写后台的相关代码,比如在ASP.NET MVC4里面写如下代码:

代码语言:javascript
复制
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
代码语言:js
复制
.csharpcode, .csharpcode pre{    font-size: small;    color: black;    font-family: consolas, "Courier New", courier, monospace;    background-color: #ffffff;    /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {    background-color: #f4f4f4;    width: 100%;    margin: 0em;}.csharpcode .lnum { color: #606060; }

这样的代码有优点,当然也有缺点。缺点就是前后端分离的不彻底,前端工程师需要了解一些后台的代码,而已在不能把前端和后台都分开开发和部署。采用JSON就可以解决这一问题。就是前端和后台交换数据的格式都采用JSON。JSON:JavaScript Object Notation的缩写,是一种基于JavaScript的字面量表达式的数据格式类型。在ECMAScript第5版标准中也包含了JSON这一类型。

JSON能够通过4种基本数据类型以及2种数据结构化数据类型来表示。4种基本数据类型是:字符串值型,数值型,布尔型和null型。结构化数据类型是对象和数组这两种。举例如下:

数据类型

举例

字符串

“test”

数值

123

布尔型

true或者false

null值

null

对象

{"x":1,"y":2,"val":"foobar"}

数组

{1,2,true,'hello'}

开发过程中,很多操作都包含了JSON格式数据类型的字符串与JavaScript对象间的相互转换。在Ajax提交表单时,需要将内部的对象转换JSON字符串之后再传输。而在接收JSON数据端,需要先将JSON字符串转换为JavaScript对象之后,才能不借助第三方类库对其值进行操作。在浏览器不支持JSON.stringify()和JSON.parse()方法之前,开发者都会使用json2.js在前端处理JSON字符串和JSON对象之间的转换。下面举例说明,将JSON字符串转换对象,将对象转换为JSON字符串。

//将JSON字符串转换对象

代码语言:javascript
复制
var s='{"x":1,"y":2,"val":"foobar"}';    var obj=JSON.parse(s);
代码语言:js
复制
.csharpcode, .csharpcode pre{    font-size: small;    color: black;    font-family: consolas, "Courier New", courier, monospace;    background-color: #ffffff;    /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {    background-color: #f4f4f4;    width: 100%;    margin: 0em;}.csharpcode .lnum { color: #606060; }

//将对象转换JSON字符串

代码语言:javascript
复制
var test=JSON.stringify({x:1,y:2,val:'foobar'});console.log(test);
代码语言:js
复制
.csharpcode, .csharpcode pre{    font-size: small;    color: black;    font-family: consolas, "Courier New", courier, monospace;    background-color: #ffffff;    /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {    background-color: #f4f4f4;    width: 100%;    margin: 0em;}.csharpcode .lnum { color: #606060; }

在实际开发过程中,经常使用JSON数组,和包含数组的JSON,如下代码所示:

代码语言:javascript
复制
var result=JSON.parse('[{"name":"aaa","age":"20","gender":"female"},{"name":"bbb","age":"21","gender":"male"},{"name":"ccc","age":"22","gender":"male"}]');                        for(var index in result){                document.write(result[index].name);            }                        var result1=JSON.parse('{"counts":5,"items":["aaa","bbb","ccc","ddd"]}');//包含数组的JSON字符串            console.log(result1.counts);                        for(var index in result1.items){                console.log(result1.items[index]);            }
代码语言:js
复制
.csharpcode, .csharpcode pre{    font-size: small;    color: black;    font-family: consolas, "Courier New", courier, monospace;    background-color: #ffffff;    /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {    background-color: #f4f4f4;    width: 100%;    margin: 0em;}.csharpcode .lnum { color: #606060; }

以上仅讨论客户端,也就是浏览器里面如何JSON,在后台开发过程中,也需要解析JSON,或者把C#,PHP或者Java的数据内容生成JSON。下一篇博客主要介绍这个内容。

参考网址:https://developer.mozilla.org/zh-CN/docs/JSON

JSON格式验证:http://jsonlint.com/

JSON入门:http://www.ibm.com/developerworks/cn/web/wa-lo-json/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-04-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档