JSON基础知识总结
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基础知识总结的更多相关文章
- 使用Jquery解析Json基础知识
前言 在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. ...
- JSON 基础知识总结
JSON:JavaScript 对象表示法(JavaScript Object Notation)JSON 语法规则 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON有6种 ...
- 使用Jquery解析Json基础知识(转)
在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. 先明 ...
- JSON基础知识
1.什么是json • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) • JSON 是轻量级的文本数据交换格式 ...
- golang基础知识之encoding/json package
golang基础知识之json 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.可以去json.org 查看json标准的清晰定义.json pack ...
- [BS-12] JSON的基础知识--百科
JSON的基础知识--百科 http://baike.baidu.com/view/136475.htm
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
随机推荐
- 图论(网络流):COGS 410. [NOI2009] 植物大战僵尸
410. [NOI2009] 植物大战僵尸 ★★★ 输入文件:pvz.in 输出文件:pvz.out 简单对比时间限制:2 s 内存限制:512 MB [问题描述] Plants vs ...
- 编写一个单独的Web Service for Delphi7(步骤)
1新建一个SOAP Server Application,在提示输入接口时输入MyHello,把所有文件保存在一个叫Ser的目录下,其中一个包含TWebModule1的文件保存为main.pas.在M ...
- 在Kafka中修改Topic的preferred replica
参考site:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools 目前我们的topic test-add-repl ...
- Java---JUnita、注解与类加载器详解以及实例
JUnit软件测试技术(工具) 在项目中建立专门用户测试的包结构. 在Junit中,通过@Test注解,可以运行一个方法. ★ Junit注解说明 使用了@Test注解应该满足以下条件: 1) 必须是 ...
- POJ3617 Best Cow Line
其实是学习参考了算法书的代码,但仍然是我自己写的,有小差别.贪心类型. #include <iostream> using namespace std; int main() { int ...
- UVa 10256 凸包简单应用
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- java中的代理
package cn.itcast.day3; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationHan ...
- J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题
J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题 2012年03月09 ...
- 二维码开源库zbar、zxing使用心得
首先说明我的测试场景是“识别打印在纸上的二维码”,在扫描结果中寻找二维码并进行识别,而不是直接让摄像头对着二维码扫描. zbar和zxing用的都是自己从github上clone的c++源码/接口编译 ...
- today's learning of english 1
1.curriculum 必修课 主修课 2.sought seek的过去式 3.blessed with a wonderful marriage 有个幸福美满的婚姻 4.al ...