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版本)的更多相关文章

  1. javascript和php使用ajax通信传递JSON

    JS和PHP直接通信常用ajax完成,以实现js上UI的动态变化.通信使用JSON或者XML传递数据.下面详细描述两者直接JSON字符串的传递. 下面案例是要传递这样的json数据: { " ...

  2. 小王子浅读Effective javascript(一)了解javascript版本

    哈哈,各位园友新年快乐!愚安好久没在园子里写东西了,这次决定针对javascript做一个系列,叫做<小王子浅读Effective javascript>,主要是按照David Herma ...

  3. 升级webapi依赖的Newtonsoft.json的版本

    随着微软日渐重视开源社区的贡献,微软在自己的产品中往往也会集成开源的第三方库. 比如System.Net.Http.Foramatting.dll 就依赖于Newtonsoft.json v4.5. ...

  4. C# .NET newtonsoft.json 多版本冲突解决

    A.DLL 引用了6.0 的 newtonsoft.json  (V2 运行时),B.DLL 引用了10.0 的 newtonsoft.json (V4 运行时). 可以在.CONFIG RUNTIM ...

  5. 项目中使用package-lock.json锁版本问题

    package-lock.json的作用: 锁版本,确保项目在后续拉去中,安装依赖包时依赖包的版本始终是统一的 在npm install时会自动生成package-lock.json package. ...

  6. JSON(JavaScript Object Notation, JS 对象标记)

    JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言 ...

  7. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式

    JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于JavaScript(Standard ECMA-262 3rd Edition - D ...

  8. bower.json 的版本范围

    bower.json 的版本范围 有小伙伴问 ~2.2.0 什么意思. 而且在git 的tags 中没有了 2.2.0 版本,怎么样? 实际上 ~2.2.0 的意思是 >=2.2.0 <2 ...

  9. 升级webapi依赖的Newtonsoft.json的版本(转)

    随着微软日渐重视开源社区的贡献,微软在自己的产品中往往也会集成开源的第三方库. 比如System.Net.Http.Foramatting.dll 就依赖于Newtonsoft.json v4.5. ...

随机推荐

  1. mybatis待研究

    1. mapper 中_parameter 的含义,是 参数? 为什么?

  2. Focal Loss for Dense Object Detection 论文阅读

    何凯明大佬 ICCV 2017 best student paper 作者提出focal loss的出发点也是希望one-stage detector可以达到two-stage detector的准确 ...

  3. centos7.2安装mysql5.7

    1.安装前工作 在安装前需要确定现在这个系统有没有 mysql,如果有那么必须卸载(在 centos7 自带的是 mariaDb 数据库,所以第一步是卸载数据库). 卸载系统自带的Mariadb: 查 ...

  4. Linux学习笔记:mv移动或文件重命名

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 语法:mv 源文件 目标文件 视mv命令中 ...

  5. 怎么区分MSSQL中nvarchar和varchar的区别?

    怎么区分MSSQL中nvarchar和varchar的区别呢?下面两段代码可以帮你看到他们的区别. declare @s Nvarchar(10) set @s='那么相当于abcd可以存储多少个汉字 ...

  6. SSIS 学习之旅 FTP访问类

    这章把脚本任务访问FTP的方法 全部给大家. 控件的使用大家如果有不懂得可以看下我之前的文章.第一章:SSIS 学习之旅 第一个SSIS 示例(一)(上) 第二章:SSIS 学习之旅 第一个SSIS ...

  7. Android Activity、Service、BroadcastReceiver 的生命周期

    Activity.Service.BroadcastReceiver这三个组建是Android开发中最常使用到的组件,在它们的生命周期的各个阶段我们需要针对性的做些事情,了解这些组件的生命周期有利于我 ...

  8. 铁轨(UVa 514)

    利用栈实现 C++11 代码如下: #include<iostream> #include<stack> using namespace std; #define maxn 1 ...

  9. C语言:写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出

    题目描述 写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出. 输入 一行字符串 输出 顺序输出其中的元音字母(aeiuo) 样例输入 abcde 样例输出 ae 编码: #include ...

  10. centos7 关闭默认firewalld,开启iptables

    编者按: 对于使用了centos6系列系统N年的运维来说,在使用centos7的时候难免会遇到各种不适应.比如防火墙问题.本文主要记录怎么关闭默认的firewalld防火墙,重新启用iptables. ...