JSON简介及常用操作
2015-12-28 16:06
627 查看
json是java web常听到的概念,平常只作为数据传输格式来用,具体操作细节也不了解,正好项目需要操作json,就学习下
1、什么是json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。常用于ajax。xml也是一种数据交换格式,但是在ajax中json比xml更快更易使用。网上也有另一种说法,简单地说, JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串(伪对象) ,然后就可以在函数之间轻松地传递这个字符串,或者 在异步应用程序中将字符串从 Web 客户端传递给服务器端程序 。
2、JSON语法
- 数据在名称/值对中 “firstName” : “John”
- 数据由逗号分隔
- 花括号保存对象 { “firstName”:”John” , “lastName”:”Doe” }
- 方括号保存数组 [
{ “firstName”:”John” , “lastName”:”Doe” },
{ “firstName”:”Anna” , “lastName”:”Smith” },
{ “firstName”:”Peter” , “lastName”:”Jones” }
]
3、JSON字符串和JSON对象
这两个概念也是我经常搞混的概念:
json字符串:是指符合json语法的字符串,例如 var objstr=”[{“姓名”:”张三”,”年龄”:”14”,”性别”:”男”},{“姓名”:”王娜”,”年龄”:”13”,”性别”:”女”}]”
json对象:是指符合json语法的js对象,例如 var obj = [{“姓名”:”张三”,”年龄”:”14”,”性别”:”男”},{“姓名”:”王娜”,”年龄”:”13”,”性别”:”女”}]
json字符串和json对象会经常互相转换,这个后面有示例。
4、如何使用json
JSON是JS的一个子集,所以可以在JS中轻松地读,写JSON。读和写JSON都有两种方法,分别是利用”.”操作符和“[key]”的方式。
为了方便展示转换操作,这里首先展示将表格数据转换为json字符串,后再转换为json对象。
(1) 表格数据转换为json字符串
表格代码
转换为json字符串js代码如下:
结果为:”[{\”姓名\”:\”张三\”,\”年龄\”:\”14\”,\”性别\”:\”男\”},
{\”姓名\”:\”王娜\”,\”年龄\”:\”13\”,\”性别\”:\”女\”}]”
此时表格数据已转换为json字符串
(2)json字符串转换为json对象
很简单的一句话就可以把json字符串转换为对象,我们将json字符串转换为json对象是为了更方便操作,此时obj对象等价于
var obj = [{“姓名”:”张三”,”年龄”:”14”,”性别”:”男”},{“姓名”:”王娜”,”年龄”:”13”,”性别”:”女”}]
(3) json对象读写数据,可以用利用”.”操作符和“[key]”的方式
(4)增加
增加有两种情况,一种是json对象新增一个key/value对,一种是json数组新增一条记录。
新增一个key/value对直接对对象进行写操作即可,新增一条记录代码如下:
(5)删除
删除也有两种情况,删除一个键值对,删除一条记录
上面的代码执行完后结果如下,删除一项
删除键值对
1、什么是json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。常用于ajax。xml也是一种数据交换格式,但是在ajax中json比xml更快更易使用。网上也有另一种说法,简单地说, JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串(伪对象) ,然后就可以在函数之间轻松地传递这个字符串,或者 在异步应用程序中将字符串从 Web 客户端传递给服务器端程序 。
2、JSON语法
- 数据在名称/值对中 “firstName” : “John”
- 数据由逗号分隔
- 花括号保存对象 { “firstName”:”John” , “lastName”:”Doe” }
- 方括号保存数组 [
{ “firstName”:”John” , “lastName”:”Doe” },
{ “firstName”:”Anna” , “lastName”:”Smith” },
{ “firstName”:”Peter” , “lastName”:”Jones” }
]
3、JSON字符串和JSON对象
这两个概念也是我经常搞混的概念:
json字符串:是指符合json语法的字符串,例如 var objstr=”[{“姓名”:”张三”,”年龄”:”14”,”性别”:”男”},{“姓名”:”王娜”,”年龄”:”13”,”性别”:”女”}]”
json对象:是指符合json语法的js对象,例如 var obj = [{“姓名”:”张三”,”年龄”:”14”,”性别”:”男”},{“姓名”:”王娜”,”年龄”:”13”,”性别”:”女”}]
json字符串和json对象会经常互相转换,这个后面有示例。
4、如何使用json
JSON是JS的一个子集,所以可以在JS中轻松地读,写JSON。读和写JSON都有两种方法,分别是利用”.”操作符和“[key]”的方式。
为了方便展示转换操作,这里首先展示将表格数据转换为json字符串,后再转换为json对象。
(1) 表格数据转换为json字符串
表格代码
<table id="table"> <tr> <td>name</td> <td>age</td> <td>sex</td> </tr> <tr> <td>张三</td> <td>14</td> <td>男</td> </tr> <tr> <td>王娜</td> <td>13</td> <td>女</td> </tr> </table>
转换为json字符串js代码如下:
function getJSONStr() { var jsonstr="[" var rows = $("table").rows; var cells =$("table").rows.item(0).cells for(var i = 1;i<rows.length;i++){ jsonstr+="{" for(var j = 0;j<cells.length;j++){ jsonstr+="\""; jsonstr+=cells[j].innerHTML; jsonstr+="\""; jsonstr+=":"; jsonstr+="\""; jsonstr+=rows[i].cells[j].innerHTML; jsonstr+="\","; } jsonstr=jsonstr.substring(0, jsonstr.length-1); jsonstr+="}," } jsonstr=jsonstr.substring(0, jsonstr.length-1); jsonstr+="]"; return jsonstr; }
结果为:”[{\”姓名\”:\”张三\”,\”年龄\”:\”14\”,\”性别\”:\”男\”},
{\”姓名\”:\”王娜\”,\”年龄\”:\”13\”,\”性别\”:\”女\”}]”
此时表格数据已转换为json字符串
(2)json字符串转换为json对象
eval("var obj="+objstr);
很简单的一句话就可以把json字符串转换为对象,我们将json字符串转换为json对象是为了更方便操作,此时obj对象等价于
var obj = [{“姓名”:”张三”,”年龄”:”14”,”性别”:”男”},{“姓名”:”王娜”,”年龄”:”13”,”性别”:”女”}]
(3) json对象读写数据,可以用利用”.”操作符和“[key]”的方式
//读取json数据下面这两种方式等价 var name = obj[1].name //结果为张三 var name = obj[1]["name"] //结果为张三 //修改json数据下面这两种方式等价 obj[1].age = 34 //此时第一条数据中的年龄变为34
(4)增加
增加有两种情况,一种是json对象新增一个key/value对,一种是json数组新增一条记录。
新增一个key/value对直接对对象进行写操作即可,新增一条记录代码如下:
function addItem() { var newItem = { 'name':'lily', 'age':'45', 'sex':'女' } obj.push(newItem); }
(5)删除
删除也有两种情况,删除一个键值对,删除一条记录
function deleteItem() { delete obj[1];//删除一个键值对 delete obj[0]["sex"];//删除一条记录 }
上面的代码执行完后结果如下,删除一项
删除键值对
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- XML 与 JSON 优劣对比
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式