在后台输出json字符串emp对象:
try {
PrintWriter out = ServletActionContext.getResponse().getWriter();
out.print(JSONObject.fromObject(emp));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在页面中查看返回的结果:
function doQuery(){
$.post("user-find.action?empId=3",function(data){
alert(data);
var emp = eval("("+data+")");
alert(emp.username);
});
js中解析json字符串:
1.eval("..."):
var json = eval("("+jsonStr+")");
如果eval中的内容含有恶意脚本就麻烦了
2.json_parse:
需要导入json_parse.js:
<script src="js/json_parse.js"></script>
<script language="javascript">
var t = json_parse('{"name":123}');
alert(t.name);
</script>>
安全,解析速度快
3.var vjson = JSON.parse(jsonstr):
支持IE8和fireFox3这两个有内置json对象的浏览器;其他浏览器要引入json.js文件
<script src="js/json.js"></script>
<script language="javascript">
var t = JSON.parse('{"name":123}');
alert(t.name);
</script>
安全,解析速度也很快。
4、使用jquery来解析
$(document).ready(function(){
var obj = jQuery.parseJSON('{"jobID":"020000715","username":"\u9a6c\u94f6\u534e","department":"\u7ee7\u7eed\u5b66\u9662"}');
var myData=[]; //定义一个数组变量
$.each(obj,function(key,value){
myData.push(value);
});
alert(myData);
});
最后,生成动态表格:
<div id="table1" ></div><script>$.getJSON("d.json", function(json){ var htmls=['<table>']; htmls.push('<tr>') for(var k in json[0]) htmls.push('<td>'+k+'</td>'); htmls.push('</tr>'); for(var i=0,L=json.length;i<L;i++){ htmls.push('<tr>'); for(var k in json[i]) htmls.push('<td>'+json[i][k]+'</td>'); htmls.push('</tr>'); } htmls.push('</table>'); $('#table1').html(htmls.join(''));</script>