js文件输出json样式

1 篇文章 0 订阅

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:
        1.一种为使用eval()函数。
        2. 使用Function对象来进行返回解析。

1.一种为使用eval()函数:

用eval函数来解析,并且使用jquery的each方法来遍历。

例如:

代码如下:

示例一:

<html>
<head>
 <title>Json测试</title>
 <script src="/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
 <script type="text/javascript">
  //基本上,Json返回的要么是对象,要么是数组,如果单纯返回一个字符串,那么就没有必要用Json了,因此
  //Json基本就下面这些可,不过要注意双引号
  var str0 = "{employees:'测试'}";
  var obj0 = eval("(" + str0 + ")");
  alert(obj0.employees);   //输出测试

  var str = "{name:'张三',Age:21}";
  var obj = eval("(" + str + ")");
  document.write(obj.name + obj.Age); //输出 张三21
  alert(obj.name);

  //别看下面那段Json长,其实是一个对象,属性employees的值是一个对象数组。和上面的相比,只是name:张三 中的"张三"字符串 变成了对象数组而已
  var str2 = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "firstName":"George" , "lastName":"Bush" },' + '{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
  var obj2 = eval("(" + str2 + ")");
  alert(obj2.employees[0].firstName);  //弹出 Bill

  var str3 = "[1,2,3,4,5,6]";    //json 数组
  var obj3 = eval("(" + str3 + ")");  //输出 2
  alert(obj3[1]);
 </script>
</head>
<body>
 <div id="div1">
 </div>
</body>
</html>
​

示例二:

​
var data="
{
 root:
  [
   {name:'1',value:'0'},
   {name:'6101',value:'北京市'},
   {name:'6102',value:'天津市'},
   {name:'6103',value:'上海市'},
   {name:'6104',value:'重庆市'},
   {name:'6105',value:'渭南市'},
   {name:'6106',value:'延安市'},
   {name:'6107',value:'汉中市'},
   {name:'6108',value:'榆林市'},
   {name:'6109',value:'安康市'},
   {name:'6110',value:'商洛市'}
  ]
}";
 var dataObj=eval("("+data+")");//转换为json对象
 alert(dataObj.root.length+"个对象");
 for(var i=0;i<dataObj.root.length;i++){
 var obj=dataObj.root[i];
 alert(obj.Name+"--"+obj.value);
}

​

由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语 句(statement)来执行。

2. 使用Function对象来进行返回解析:它的典型应用就是在JQUERY中的AJAX方法下的success等对于返回数据data的解析

var json = '{"name":"CJ","age":18}';
data = (new Function("", "return " + json))();

 附加:

Json与JavaScript对象转换

  JSON转javascript对象

//Json转对象1
function JsonToObject(str) {
 return eval("(" + str + ")");
}

//Json转对象2 
function strToJson(str){
 var json = (new Function("return " + str))();
 return json;
}

//Json转对象3 jQuery工具函数
$.parseJSON()

       javascript对象转JSON

//javascript对象转Json
function ObjectToJson(o) {
 var arr = [];
 var fmt = function(s) {
  if (typeof s == 'object' && s != null) return json2str(s);
  return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
 }
 for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
 return '{' + arr.join(',') + '}';
}

 以上就是本文的全部内容,希望对大家有所帮助,谢谢对我的支持!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值