js中生成json对象生成动态表格

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

你可能感兴趣的:(json,js解析)