在后台输出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>