javascript:jsonデータのページ結合

1760 ワード

web開発では、「サーバーから戻ってきたjsonオブジェクト」を「既存ページのdom要素」に結びつける必要があると、伝統的な割当方法が煩雑で、書いても疲れます.
1、元素のidはJsonオブジェクトの属性名と一致します.
2、Jsonオブジェクトの属性名は重複しないほうがいいです.
<!doctype html>

<html>

<head>

<title>json      </title>

<script type="text/javascript">

var obj = {a:'a1',b:'b1',c:{c1:'c1'},d:1,e:true,f:new Date("2012/12/24")};





//showJsonProperty(obj);



/*

function showJsonProperty(jsonObj){

	for(var o in jsonObj){		

		alert("   :" + o.toString() + ", :" + jsonObj[o].toString() + ",type:" + typeof(jsonObj[o]) );	

		if (typeof(jsonObj[o])=="object")

		{

			showJsonProperty(jsonObj[o]);

		}		

	}

}

*/





function bindJson(jsonObj){

	for(var o in jsonObj){	

		var domObj = document.getElementById(o.toString());

		if (domObj!=undefined){

			domObj.value=jsonObj[o].toString();

		}		

		if (typeof(jsonObj[o])=="object")

		{

			bindJson(jsonObj[o]);

		}		

	}

}



function bindData(){	

	bindJson(obj);

}

</script>

<style type="text/css">

	input{width:80px;height:18px;margin:0 10px 0 0;border:1px #999 solid}

	input:hover{border:1px #ff0000 solid}

	input[type=button]{background-color:#efefef;height:22px;}

</style>

</head>

<body>

	<div>

		a:

		<input id="a" />

		b:

		<input id="b" />

		c.c1:

		<input id="c1" />

		d:

		<input id="d" />

		e:

		<input id="e" />

		f:

		<input id="f" />

		<input type="button" value="  " id="btnBind" onclick="bindData()"/>

	</div>

</body>

</html>