您的位置:首页 > Web前端 > JavaScript

json 理解,添加 删除 排序

2016-05-27 12:33 519 查看
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);


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: