伟大的通信使者——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. ...
随机推荐
- Python列表(list)
序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. 此外,Python已经内置确定序列的长度以及确定最大和最小的元素 ...
- java基础55 UDP通讯协议和TCP通讯协议
本文知识点(目录): 1.概述 2.UDP通讯协议 3.TCPP通讯协议 1.概述 1.在java中网络通讯作为Socket(插座)通讯,要求两台都必须安装socket. 2.不同的 ...
- java 多线程总结篇4——锁机制
在开发Java多线程应用程序中,各个线程之间由于要共享资源,必须用到锁机制.Java提供了多种多线程锁机制的实现方式,常见的有synchronized.ReentrantLock.Semaphore. ...
- hihocoder1636 Pangu and Stones(区间DP(石子合并变形))
题目链接:http://hihocoder.com/problemset/problem/1636 题目大意:有n堆石头,每次只能合并l~r堆,每次合并的花费是要合并的石子的重量,问你合并n堆石子的最 ...
- Ubuntu 14.04 16.04 Linux nvidia 驱动下载与安装
Ubuntu 14.04 16.04 nvidia 驱动安装 最简单直观的方式是在如下的对话框中直接选择驱动安装即可 但是有时候,驱动不够新,比如14.04用的是340.98版本,如果手动安装驱动可以 ...
- gtk+学习笔记(六)
今天用到了滚动窗口和微调按钮,根据网上的信息,简单总结下用法. 滚动窗口只能添加一个控件到其中 scrolled=gtk_scrolled_window_new(NULL,NULL); /*创建滚动窗 ...
- 最邻近规则分类KNN算法
例子: 求未知电影属于什么类型: 算法介绍: 步骤: 为了判断未知实例的类别,以所有已知类别的实例作为参照 选择参数K 计算未知实例与所有已知实例的距离 选择最近K个已 ...
- CVE-2013-3893
前方高能!!!这篇博文比较长,因为我把完整的调试过程都记录下来了,感兴趣的童鞋可以看下.没有耐心的童鞋可以直接跳到最后看总结:) Microsoft Internet Explorer 远程代码执行漏 ...
- Elasticsearch的相关知识
Elasticsearch的备份和恢复 http://keenwon.com/1393.html ETL kettle 数据转成json 发送POST请求 http://blog.csdn.net/a ...
- jar包重启脚本-restart.sh
#!/bin/sh PROJECT_PATH=/var/www/ PROJECT_NAME=demo.jar PROJECT_ALL_LOG_NAME=logs/demo-all.log # stop ...