js中obj与json之间的转换

简单介绍:

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速度)。所在现在是主流一种数据交换方式。
方式一:

1、obj转换成json格式

<script type="text/javascript">
	var person=new Object();	//实例化一个对象
	person.firstname="Bill";
	person.lastname="Gates";
	person.age=56;
	person.eyecolor="blue";
	alert(obj2str(person));
	function obj2str(o){  //ojb转换成json格式方法 
            var r = [];   
            if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";   
            if(typeof o =="undefined") return "";   
            if(typeof o == "object"){   
                if(o===null) return "null";   
                else if(!o.sort){   
                    for(var i in o)   
                         r.push(i+":"+obj2str(o[i]))   
                     r="{"+r.join()+"}"  
                 }else{   
                    for(var i =0;i<o.length;i++)   

                         r.push(obj2str(o[i]))   

                     r="["+r.join()+"]"  

                 }   
                return r;   
             }   
            return o.toString();   
}
  </script>

 2、json转换成obj格式

<script type="text/javascript">
	var jsonText="{\"Alias\":\"张三\",\"ID\":476,\"ServicesID\":100}";
	var obj= eval("(" + jsonText+ ")");
	alert(obj.ID);
  </script>

 方式二:

    需要json2.js,下载地址为:https://github.com/douglascrockford/JSON-js/blob/master/json2.js

    1、obj转换成json格式

<script type="text/javascript">
	var person=new Object();
	person.firstname="Bill";
	person.lastname="Gates";
	person.age=56;
	person.eyecolor="blue";
	var jsonString = JSON.stringify(person);
	alert(jsonString);
  </script>

   2、json转换成obj格式

<script type="text/javascript">
	var jsonText="{\"Alias\":\"zhangsan\",\"ID\":476,\"ServicesID\":100}";
	var obj = JSON.parse(jsonText);
	alert(obj.ID);
  </script>

    建议使用方式二

猜你喜欢

转载自weifengxuxu.iteye.com/blog/2206387