日期:2014-05-16  浏览次数:20359 次

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" };
?3JSON字符串转换为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包版本太低。
?5:dom的属性可以用.设置
_option.selected="selected"
?