伟大的通信使者——JSON(JavaScript版本)
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。(摘自百科)
在前端开发中,JSON数据可以作为一个结构体存储复杂的结构关系,在此基础上实现前后台的数据交互,不管怎样,掌握JSON的结构和转换时不可或缺的。
一、JSON格式
JSON有两种结构:对象、数组。对象是以键值对的形式表示,比如:
var jsonObj={
key1: "value1",
key2: "value2",
key3: "value3"
}
而数组是以“[]”包裹若干个“{}”的形式表示,比如:
var jsonArray = [
{"a":"hello"},
{
"b":"nice",
"c":"to"
},
{
"d":"meet",
"e":"you"
}
]
二、JSON的访问
从JSON的构成可以看出来,可以使用"."或者“[]”来获取或者增加json数据里的具体某个值。比如:
console.log(jsonObj.key1); //value1
console.log(jsonObj["key2"]); //value2
//增加新数据
jsonObj["key4"]="value4";
console.log(jsonObj.key4); //value4
//修改数据
jsonObj.key3="value0";
console.log(jsonObj["key3"]); //value0
//删除数据
delete jsonObj["key1"];
console.log(jsonObj);
//{key2: "value2", key3: "value0", key4: "value4"}
//遍历数据
for(var key in jsonObj){
console.log(key);
}
//key2
//key3
//key4
三、JSON数据的转换
1.JSON对象转换成JSON字符串
//方法一:JSON.stringify(jsonobj);
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
//"{"key2":"value2","key3":"value0","key4":"value4"}" //方法二:jsonObj.toJSONString();
jsonObj.toJSONString();
//"{"key2":"value2","key3":"value0","key4":"value4"}"
2.JSON字符串转换成JSON对象
//方法一:JSON.parse(str)
var jsonStr='{"key2":"value2","key3":"value0","key4":"value4"}';
JSON.parse(jsonStr);
// Object {key2: "value2", key3: "value0", key4: "value4"} //方法二:eval
var jsonObj = eval('(' + jsonStr + ')');
// Object {key2: "value2", key3: "value0", key4: "value4"} //方法三: jsonStr.parseJSON()
var jsonObj = jsonStr.parseJSON();
// Object {key2: "value2", key3: "value0", key4: "value4"}
四、网址和json2.js下载使用
https://github.com/douglascrockford/JSON-js
伟大的通信使者——JSON(JavaScript版本)的更多相关文章
- javascript和php使用ajax通信传递JSON
JS和PHP直接通信常用ajax完成,以实现js上UI的动态变化.通信使用JSON或者XML传递数据.下面详细描述两者直接JSON字符串的传递. 下面案例是要传递这样的json数据: { " ...
- 小王子浅读Effective javascript(一)了解javascript版本
哈哈,各位园友新年快乐!愚安好久没在园子里写东西了,这次决定针对javascript做一个系列,叫做<小王子浅读Effective javascript>,主要是按照David Herma ...
- 升级webapi依赖的Newtonsoft.json的版本
随着微软日渐重视开源社区的贡献,微软在自己的产品中往往也会集成开源的第三方库. 比如System.Net.Http.Foramatting.dll 就依赖于Newtonsoft.json v4.5. ...
- C# .NET newtonsoft.json 多版本冲突解决
A.DLL 引用了6.0 的 newtonsoft.json (V2 运行时),B.DLL 引用了10.0 的 newtonsoft.json (V4 运行时). 可以在.CONFIG RUNTIM ...
- 项目中使用package-lock.json锁版本问题
package-lock.json的作用: 锁版本,确保项目在后续拉去中,安装依赖包时依赖包的版本始终是统一的 在npm install时会自动生成package-lock.json package. ...
- JSON(JavaScript Object Notation, JS 对象标记)
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言 ...
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于JavaScript(Standard ECMA-262 3rd Edition - D ...
- bower.json 的版本范围
bower.json 的版本范围 有小伙伴问 ~2.2.0 什么意思. 而且在git 的tags 中没有了 2.2.0 版本,怎么样? 实际上 ~2.2.0 的意思是 >=2.2.0 <2 ...
- 升级webapi依赖的Newtonsoft.json的版本(转)
随着微软日渐重视开源社区的贡献,微软在自己的产品中往往也会集成开源的第三方库. 比如System.Net.Http.Foramatting.dll 就依赖于Newtonsoft.json v4.5. ...
随机推荐
- 数据库-mysql函数
一:MySQL中提供了许多内置函数 CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符.一个多字节字符算作一个单字符. 对于一个包含五个二字节字符集, LENGTH()返 ...
- 洛谷P1525关押罪犯
传送门啦 想让最大值最小,所以,这题可以用二分法,排序之后发现可以并查集,因为要使最大值最小,排序后这个最大值是存在的. 对于会冲突的两个罪犯,我们连一条无向边,然后按权值从大到小排序,从大到小枚举每 ...
- elasticsearch5.5-head
修改 elasticsearch/config/elasticsearch.yml 添加 http.cors.enabled: true http.cors.allow-origin: "* ...
- IntelliJ IDEA + Tomcat 部署问题
首先要了解下 tomcat的 几种部署方式(大致分为静态部署和动态部署),可以百度,博客:http://qsfwy.iteye.com/blog/466461 IntelliJ IDEA 下部署项目的 ...
- IntelliJ IDEA 自动导入包的问题
我们再使用IDE写代码的时候,往往需要 鼠标点中这个类 然后 使用 alt+enter ,导入响应的包,如果导入的包比较多,一个一个点 也是费事. 因为用手动,有可能需要你选择导入那个包,有时候类名 ...
- 20165203《Java程序设计》第五周学习总结
教材学习内容总结 第七章 内部类 注意内部类和外嵌类的关系: 外嵌类的成员变量和方法在内部类有效 内部类的类体不可以声明static变量和方法.外嵌类的类体可以用内部类声明对象. 内部类仅供它的外嵌类 ...
- 15 链表中倒数第k个结点
输入一个链表,输出该链表中倒数第k个结点. p1先走k-1步,p1 p2再一起走 C++: /* struct ListNode { int val; struct ListNode *next; L ...
- java8 - 多线程时间安全问题
import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeForma ...
- day1作业登录接口总结
作业一:编写登陆接口 1.输入用户名和密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 上面作业,用了几种思路来解决问题:但是本质上其实都是一样的:核心都是对文件的操作,文件的增删改查:并且这些操 ...
- PHP将对象转换成数组的方法(兼容多维数组类型)
/** * @author gayayang * @date 2012-8-21 * @todo 将对象转换成数组 * @param unknown_type $obj * @return unkno ...