js处理json

1:生成下接列表
<html>
<head>
<script>
	var arrayNation = [{"id":0,"devName":"billing"},{"id":1,"devName":"log"}];
	
	function createSelect(str){
		var _select = document.createElement("select");
		var firstOption = document.createElement("option");
		firstOption.value = "------select------";
		firstOption.text = "------请选择------";
		_select.appendChild(firstOption);
		for ( i = 0; i < str.length; i++){
			var _option = document.createElement("option");
			_option.value = str[i].id.toString();
			_option.text = str[i].devName.toString();
			_select.appendChild(_option);
		}
		return _select;
	}
</script>
</head>
<body>
<div id="dep"/>
<script>
	document.getElementById("dep").appendChild(createSelect(arrayNation));
</script>
</body>
</html>
 2:区分对像与数组
1. 一个对象以“{”(左括号)开始,“}”(右括号)结束
 
2. 一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔
 
JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';

JSON对象:
var str2 = { "name": "cxh", "sex": "man" };
 3 JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
Alert(obj.name);
Alert(obj.sex);

特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。
 4:将JSON对象转化为JSON字符串
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
alert(last);
留心:

上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。
由 对象转json字符串
var student = new Object();
student.qq = "5485891512";
student.name = "Lanny";
student.age = 25;

var stu = new Array();
stu[0] = "qq";
stu[1] = "age";
stu[2] = "Hi";//这个student对象里不存在。

var json = JSON.stringify(student,stu);
alert(json);
  结果
{"qq":"5485891512","age":25}
 
5:dom的属性可以用.设置
_option.selected="selected"
 6:当json中的key为数字时
var jsonranklist={"data":{"1":12,"2":56,"3":20,"4":6},"indata":{"1":3,"2":16,"3":28,"4":56}};
alert(jsonranklist['data']['1']);
 7:遍历json的值
var jsonranklist={"data":{"1":12,"2":56,"3":20,"4":6},"indata":{"1":3,"2":16,"3":28,"4":56}};
for(var key in jsonranklist.data){
alert(jsonranklist.data[key]);
}
 8:创建json对象
var jsons={};
 9:插入属性
jsonstor[key]=value;
 10:按key进行排序
 <script type="text/javascript">
	var jsons={"2014-01-08 15:50":2808,"2014-01-08 12:05":1064,"2014-01-08 15:55":2272,"2014-01-08 11:50":1056,"2014-01-08 12:00":1056,"2014-01-08 13:00":1072,"2014-01-08 13:40":1384}
     function storjson(formdata){
			var keys=new Array();
			for (var i in formdata){
				keys.push(i);
			}
			keys.sort();
			var jsonstor={};
			for (var i in keys){
				var key=keys[i];
				jsonstor[key]=formdata[key];
			}
			return jsonstor;
		}
		alert(JSON.stringify(storjson(jsons)))
    </script>
 在网上找的排 序(没有验证)
//函数功能:json 排序
// filed:(string)排序字段,
// reverse: (bool) 是否倒置(是,为倒序)
// primer (parse)转换类型
var sortBy = function (filed, reverse, primer) {
reverse = (reverse) ? -1 : 1;

return function (a, b) {
a = a[filed];
b = b[filed];

if (typeof (primer) != "undefined") {
a = primer(a);
b = primer(b);
}

if (a < b) {
return reverse * -1;
}
if (a > b) {
return reverse * 1;
}
}
}

//调用
function sortCourseTime_ASC() {
Json_searchCourse.sort(sortBy('CourseLength', false, parseInt));
executeSort();//重新生成表格
}
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值