json 理解,添加 删除 排序

JSON知识错误:
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);

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值