• 字符串转换成JSON的三种方式


    采用Ajax的项目开发过程中,经常需要将JSON格式的字符串返回到前端,前端解析成JS对象(JSON )。
    ECMA-262(E3) 中没有将JSON概念写到标准中,但在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。 
    
    1,eval方式解析,恐怕这是最早的解析方式了。
    
    function strToJson(str){
         var json = eval('(' + str + ')');
         return json;
    }
    
    记得str两旁的小括号哦。
    
    2new Function形式,比较怪异哦。
    function strToJson(str){
        var json = (new Function("return " + str))();
        return json;
    }
    
    IE6/7中当字符串中含有换行(\n)时,new Function不能解析,但eval却可以。
    
    3,使用全局的JSON对象。
        
    function strToJson(str){
        return JSON.parse(str);
    }
    
    目前IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法。
    
    使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下
    var str = '{name:"jack"}';
    var obj = JSON.parse(str); // --> parse error
    
    name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。
    
    相关:
    
    http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx 
    https://developer.mozilla.org/en/Using_JSON_in_Firefox 
  • 相关阅读:
    ZOJ 2158 Truck History
    Knight Moves (zoj 1091 poj2243)BFS
    poj 1270 Following Orders
    poj 2935 Basic Wall Maze (BFS)
    Holedox Moving (zoj 1361 poj 1324)bfs
    ZOJ 1083 Frame Stacking
    zoj 2193 Window Pains
    hdu1412{A} + {B}
    hdu2031进制转换
    openjudge最长单词
  • 原文地址:https://www.cnblogs.com/qq1223558/p/3171197.html
Copyright © 2020-2023  润新知