json 理解,添加 删除 排序
2016-05-27 12:33
519 查看
JSON知识错误:
JSON 只是一种数据结构,JSON 是有一种由一定规则的纯文本内容。本身不具备任何的操作方法,需要在编程语言中,转换相应的对象后才可进行操作。
对于JSON的操作,比如添加 删除 排序 ,一维和二维 的方法是不同的。
一,添加和删除
二,排序
最近APP开发项目中遇到问题,需要向json数据中添加一个元素,或者说向json对象中添加一个属性
无所谓了, 看代码: 这是一段服务器返回的字符串
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
JSON 只是一种数据结构,JSON 是有一种由一定规则的纯文本内容。本身不具备任何的操作方法,需要在编程语言中,转换相应的对象后才可进行操作。
对于JSON的操作,比如添加 删除 排序 ,一维和二维 的方法是不同的。
js数据格式和json数据格式,各有各的用处,就个人而言,json更好用一点,js自身的数组和对像限制比较多。 以js的数组举例:
var a = ['1']; a[5] = 52; a.length //这儿的结果是6,也就是说,中间的key会自动补全,而值呢,是undefined
一,添加和删除
1.一维数组
test = {}; //空json对像 test['firstname'] = "tank"; //添加二个元素 test['lastname'] = "zhang"; console.log(test); //查看 delete test['lastname']; //删除json中的某个元素 console.log(test);
2.二维数组
test1 = [{"name":"tank","total":"100"},{"name":"zhang","total":"23"},{"name":"hao","total":"325"}]; add = {"name":"may"}; test1.push(add); //添加一个元素 console.log(test1); delete test1[2]; //删除一个元素 console.log(test1);
二,排序
1.一维数组
test = ["100","23","325"]; //定义个数组 function sortNumber(a,b) //定义排序方法 { return a - b } test1_sort=test.sort(sortNumber); console.log(test1_sort);
2.二维数组
test1 = [{"name":"tank","total":"100"},{"name":"zhang","total":"23"},{"name":"hao","total":"325"}]; sort_by = function(field, reverse, primer){ //定义排序方法 var key = primer ? function(x) {return primer(x[field])} : function(x) {return x[field]}; reverse = [-1, 1][+!!reverse]; return function (a, b) { return a = key(a), b = key(b), reverse * ((a > b) - (b > a)); } } test1_sort=test1.sort(sort_by('total', true, parseInt)); //根据total,升序排 console.log(test1_sort); test1_sort=test1.sort(sort_by('name', false, '')); //根据name,倒序排 console.log(test1_sort);
最近APP开发项目中遇到问题,需要向json数据中添加一个元素,或者说向json对象中添加一个属性
无所谓了, 看代码: 这是一段服务器返回的字符串
{ "EBusinessID": "1256108", "ShipperCode": "ZTO", "Success": true, "LogisticCode": "401014383764", "State": "3", "Traces": [ { "AcceptTime": "2016-05-02 19:51:47", "AcceptStation": "南昌昌东区 的 快递员 已收件" }, { "AcceptTime": "2016-05-02 21:32:24", "AcceptStation": "快件离开 南昌昌东区 已发往 潍坊中转部" }, //后面省略 ] }
var logistic = '[' + query_logistics.getlogistic() + ']'; //字符串 反序列化 为 json var date=angular.fromJson(logistic); //返回的数据 加一个元素 date[0].Express_Com="asd"; console.info(date);
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
//json 数组也是数组 var jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]"; var jsonarray = eval('('+jsonstr+')'); //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。 var arr = { Express_Com:'asdsa' } jsonarray.push(arr); console.info(jsonarray);
相关文章推荐
- [Effective JavaScript 笔记]第20条:使用call方法自定义接收者来调用方法
- 读书时间《JavaScript高级程序设计》六:事件
- 学习 JavaScript 最难点之二 -- 理解closure(闭包)
- JavaScript之正则表达式
- JS中Null与Undefined的区别
- JavaScript之入门篇(二)
- json原始解析
- 借助Gson解析Json的方法
- CDH调试oozie报错To enable Oozie web console install the Ext JS library.
- 基于JavaScript FileReader上传图片显示本地链接
- js控制div显示隐藏与赋值,selelect默认选中,div显示竖向进度条
- 论Json解析途径及XML的对比
- javaScript属性和方法同在构造函数中(包含继承)
- Extjs的API阅读方式(整理)
- Extjs的API阅读方式(整理)
- 关于JsonStore中数据和字段关系的描述
- 学习过程中对遇到的js 事件集中处理的个人白话总结
- jsp技术(内置对象,动作标签,指令)
- js验证图片大小及后缀名
- JSON解析 null处理