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 str1 = '{ "name": "cxh", "sex": "man" }';
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };
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 obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
Alert(obj.name);
Alert(obj.sex);
特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。
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 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包版本太低。
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);
结果
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的值
alert(jsonranklist['data']['1']);
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对象
for(var key in jsonranklist.data){
alert(jsonranklist.data[key]);
}
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();//重新生成表格 }