JSON序列化与解析(原生JS方法)【IE6和chrome测试通过】

  1. <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
  2. <html xmlns=”http://www.w3.org/1999/xhtml”>
  3. <head>
  4. <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
  5. <meta name=”author” content=”Nancle from CAU CS 101″ />
  6. <title>JSON序列化与解析(原生JS + Object对象拓展方法)【IE6和chrome测试通过】</title>
  7. </head>
  8. <script type=”text/javascript”>
  9. var ele = {
  10.      x:11,
  11.      y:’string’,
  12.      z:{x:11, y:’string’}
  13. }
  14. toJSON = function(obj){
  15.     var arr = [];
  16.     for(var key in obj){
  17.         var value = obj[key];
  18.         if(value == null){
  19.             value = ”;
  20.         }else{
  21.             value = (typeof value === ‘string’ | typeof value === ‘number’)
  22.                                                       ? (‘”‘ + value + ‘”‘) : toJSON(value);
  23.         }
  24.         var str = ‘”‘ + key + ‘”:’ + value;
  25.         arr.push(str);
  26.     }
  27.     return ‘{‘ + arr.join(‘,’) + ‘}’;
  28. }
  29. var str = toJSON(ele);
  30. alert(‘装换成的字符串是: ‘ + str );
  31. var ele2 = eval(‘(‘ + str + ‘)’);
  32. alert(‘解析字符串得到js对象: x=’ + ele2.x + ‘,y=’ + ele2.y + ‘,z=’ + ele2.z);
  33. </script>
  34. <body>
  35. </body>
  36. </html>

标签