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对象
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();//重新生成表格
}