JSON基础

一、JSON简介

JSON,全称“JavaScript Object Notation(JavaScript对象表示法)”,起源于JavaScript的对象和数组。JSON,说白了就是JavaScript用来处理数据的一种格式,这种格式非常简单易用,不过没有XML通用。

JSON,大部分都是用来处理JavaScript和web服务器端之间的数据交换,把后台web服务器的数据传递到前台,然后使用JavaScript进行处理,例如ajax等。

JSON支持的语言非常多,包括JavaScript、C#、PHP、Java等等,这是由于JSON独立于语言的轻量级的数据交换格式,这个特点有点类似于SQL语言。

JSON,就是一种数据传输格式而已,无它,非常容易掌握。但是大家不要误以为JSON最大的用处是在前端,其实JSON最大的用处是处理JavaScript和web服务器端之间数据交换。

对于JSON的学习,前半部分对于有前端基础的人也可以学习,不过呢对于JSON教程后半部分就得需要有后端技术基础了,因为JSON最大的好处就在于处理前端和web服务器端之间数据交换。

1.1 JSON对象结构

JSON结构共有2种:

(1)对象结构;

(2)数组结构;

JSON,简单来说就是JavaScript中的对象或数组,所以这两种结构就是对象和数组。通过这两种结构就可以表示各种复杂的结构。

这一节我们先来认识一下JSON对象结构。

一、JSON对象结构

对象结构是使用大括号“{}”括起来的,大括号内是由0个或多个用英文逗号分隔的“关键字:值”对(key:value)构成的。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
var obj =
{
"name":"helicopter",
"age":23,
"gender":"男",
//JSON对象内部也有一个JSON对象
hobby:
{
"first":"swimming",
"second":"singing",
"third":"dancing"
}
}
delete obj.age;
if(obj.age==null)
{
alert("JSON中的年龄项已经被删除!");
}
</script>
</head>
<body>
</body>
</html>

1、从JSON中读数据

jsonObj.key
jsonObj["key"]

2、向JSON写数据

3、修改JSON中的数据

4、删除JSON中的数据

delete  jsonObj.key;

5、遍历JSON对象

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
var obj =
{
"name":"helicopter",
"age":23,
"gender":"男",
}
for(var c in obj)
{
if(c=="name")
{
document.write("姓名是:"+obj[c]);
}
}
</script>
</head>
<body>
</body>
</html>

1.2 JSON数组结构

对于获取、写入、修改、删除、遍历JSON数组结构中的数据,跟JSON对象结构的数据操作类似

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
var arr =
[
{
"name":"小明",
"age":23,
"gender":"男"
},
{
"name":"小红",
"age":21,
"gender":"女"
}
]
//读取JSON数据
document.write("第一个学生的名字是:"+arr[0].name+"<br>");
document.write("第二个学生的性别是:"+arr[1].gender+"<br>");
</script>
</head>
<body>
</body>
</html>

1.3 JSON对象和JSON字符串

普通字符串,大家都知道是使用单引号或双引号括起来的一串字符。

JSON对象,指的是符合JSON格式要求的JavaScript对象。

JSON字符串,指的是符合“JSON格式”的字符串。

var str = "json教程"; //普通字符串
var jsonObj = {"name":"helicopter","age":23,"gender":"男"}; //json对象
var jsonStr = '{"name": "helicopter", "age":23, "gender": "男"}'; //json字符串

JSON字符串要求两点:

(1)必须是字符串,也就是要用单引号或双引号括起来;

(2)必须符合“JSON”格式。

在JSON中,可以使用JSON.stringify()方法将JSON对象转换为JSON字符串,JSON.parse()方法来将JSON字符串转换为JSON对象

var jsonStr=JSON.stringify(obj);
var jsonObj=JSON.parse(jsonStr);

在JavaScript中,将JSON字符串转换为JSON对象非常有用。一般,在Web服务器后台向前台传输数据的过程中,往往都是用字符串形式来传输JSON数据。如果我们在前台想要获取JSON数据,就必须将JSON字符串转换为JSON对象才能操作。

现在大多数浏览器(IE8及以上,Chrome和Firefox差不多全部)自带原生JSON对象,提供JSON.parse()方法来将JSON字符串转换为JSON对象。

1.4 JSON在线解析工具

http://www.lvyestudy.com/tools/json_editor.aspx

JSON基础知识总结的更多相关文章

  1. 使用Jquery解析Json基础知识

    前言 在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. ...

  2. JSON 基础知识总结

    JSON:JavaScript 对象表示法(JavaScript Object Notation)JSON 语法规则 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON有6种 ...

  3. 使用Jquery解析Json基础知识(转)

    在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. 先明 ...

  4. JSON基础知识

    1.什么是json •        JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) •        JSON 是轻量级的文本数据交换格式 ...

  5. golang基础知识之encoding/json package

    golang基础知识之json 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.可以去json.org 查看json标准的清晰定义.json pack ...

  6. [BS-12] JSON的基础知识--百科

    JSON的基础知识--百科 http://baike.baidu.com/view/136475.htm

  7. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  8. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  9. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

随机推荐

  1. 如何解决设置Session保存在StateServer后引起WebService/WebMethod无法异步获取Session

    项目中有一个文件上传功能,需要显示文件上传进度.于是使用PageMethods 调用WebService/WebMethod . 在demo中测试一切正常.但是转移到项目中之后无法异步刷新文件上传进度 ...

  2. Chrome启动参数的配置问题的补充

    一.当Chrome浏览器不支持本地AJAX请求时,会出现AJAX跨域问题,这时候我们就要配置相应的启动参数使得浏览器可以访问本地文件: 配置参数为:--allow-file-access-from-f ...

  3. 《University Calculus》-chaper12-多元函数-拉格朗日乘数法

    求解条件极值的方法:拉格朗日乘数法 基于对多元函数极值方法的了解,再具体的问题中我们发现这样一个问题,在求解f(x,y,z)的极值的时候,我们需要极值点落在g(x,y,z)上这种对极值点有约束条件,通 ...

  4. POJ 3187 穷举

    题意:已知有N个数分别为1-N,如下图为4个数.相邻两两相加直至只剩下一个数,下图的结果就是16. 3 1 2 4     4 3 6   7 9 16 现在反过来看,告诉你数的个数N和最终结果,问这 ...

  5. AGG 之贝塞尔插值

    原文: http://liyiwen.iteye.com/blog/705489 之前 comp.graphic.algorithms 上有一个讨论,是关于怎么样使用曲线对多边形进行插值处理,使得最终 ...

  6. oGitHub 注册

    GitHub 注册 要想使用 GitHub 第一步当然是注册 GitHub 账号: 1.首先打开 https://github.com/pricing 进行注册. 2.在打开的页面中点击「Sign u ...

  7. 网络协议- HTTP

    http:是用于www浏览的一个协议.tcp:是机器之间建立连接用的到的一个协议.

  8. solr ,hadoop ,lucene,nutch 的关系和区别

    apache lucene是apache下一个著名的开源搜索引擎内核,基于Java技术,处理索引,拼写检查,点击高亮和其他分析,分词等技术. nutch和solr原来都是lucene下的子项目.但后来 ...

  9. storyBoard方式ScrollView的AutoLayout

    在使用storyboard和xib时,我们经常要用到ScrollView,还有自动 布局AutoLayout,但是ScrollView和AutoLayout 结合使用,相对来说有点复杂.根据实践,我说 ...

  10. 设计模式(二)The Observer Pattern 观察者模式

    问题引入 生成一个公告板显示当时的天气状况,当天气状况发生改变的时候公告板能够实时的更新. 模式定义 定义对象之间的一对多的依赖.当一个对象改变状态时,它的全部依赖者都会自己主动收到通知并自己主动更新 ...