json和string 之间的相互转换

json和string 之间的相互转换

    <script type="text/javascript">
        
         //先认识一下js中json
        function showInfo(){
         var user={
           "name":"jack",                                 //字符串类型的值
           "age":18,                                      //数字类型的值
           "info":{"tel":"110","cellphone":"13613"},     //object 类型的值
           "address":                                    //数组类型的值;
           [
              {"city":"meishang","postCode":"222222"},
              {"city":"chengdu","postCode":"3333333"}
           
           ]
         } //user json over
         
         //简单调用
         alert(user.name);
         alert(user.info.tel);
         alert(user.address[0].city);
        }
        
       
      //------------------------------------------字符串对象转成json对象 
      function strToJson(){
        var str='{"json":"jsonData"}';
        alert(typeof(str));
        
        //方法一;JQ中的方法
        //缺陷:同样的,在我们的ie兼容模式下 会报错;而且还必须需严格遵守JSON规范
        var json=JSON.parse(str); //或者使用我们的 parseJSON
        alert(typeof(json));
        alert(json.json);
      
      }
      
      function strToJson2(){
       //eval('(' + jsonstr + ')');
       //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 
       //注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。 
       var str='{"json":"jsonData"}';
       alert(typeof(str));
       var json=eval('('+str+')');
       alert(typeof(json));
       alert(json.json);
      
      }
      
      function strToJson3(){
       var str='{"json":"jsonData"}';
       alert(typeof(str));
       var json=(new Function("return"+str))(); //这个json中声明函数对象的一种方式滴呀
       alert(typeof(json));
       alert(json.json);
      }
      
      
      //------------------------------------------json转string类型
      function jsonToStr(){
        
         var obj={name:'jack'}; //对象
         var arr=[];
         arr.push(obj);         //我们都可以将对象 数组 转成我们的string
         
         alert(typeof(obj));
         alert(typeof(arr));
         
         var result1=JSON.stringify(obj);  //或者使用 toJSONString
         var result2=JSON.stringify(arr);  
         alert(typeof(result1));
         alert(typeof(result2));
         
         //缺陷就是在我们ie 兼容性模式下,找不到我们的JSON对象报错,
         
      }
      
      //当然我们也可以手写一个转化的方法
      function jsonToStr2(){
      
        var obj={name:'jack'}; //对象
        
        var jStr="{";
        for(var property in obj){
          jStr+="'"+property+"':'"+obj[property]+"'";
        }
        jStr+="}";
        alert(typeof(jStr));
        alert(jStr);
        
      }
      
      
      //当然最好还有我们的终结方法:使用插件;json2.js
      
    </script>

 

posted @ 2016-06-22 14:55  咕-咚  阅读(924)  评论(0编辑  收藏  举报