久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

        手機站
        千鋒教育

        千鋒學習站 | 隨時隨地免費學

        千鋒教育

        掃一掃進入千鋒手機站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學習站小程序
        隨時隨地免費學習課程

        當前位置:首頁  >  技術(shù)干貨  > JS對象轉(zhuǎn)字符串的幾種方法

        JS對象轉(zhuǎn)字符串的幾種方法

        來源:千鋒教育
        發(fā)布人:xqq
        時間: 2023-11-23 00:03:12 1700668992

        一、JSON.stringify方法

        JSON.stringify方法是將一個javascript對象或值轉(zhuǎn)換成為一個 JSON字符串。

        使用方法如下:

        
          var obj = {
            name: 'Tom',
            age: 18,
            grade: {
              math: 90,
              english: 95
            },
            hobbies: ['reading', 'music']
          };
          var str = JSON.stringify(obj);
          console.log(str);
        

        執(zhí)行結(jié)果為:

        
          {"name":"Tom","age":18,"grade":{"math":90,"english":95},"hobbies":["reading","music"]}
        

        json字符串還可以通過JSON.parse方法轉(zhuǎn)換成js對象

        代碼如下:

        
          var obj = JSON.parse(str);
          console.log(obj);
        

        執(zhí)行結(jié)果為:

        
          {name: "Tom", age: 18, grade: {…}, hobbies: Array(2)}
        

        二、Function方法

        Function是js中的一個對象,它有一個toSource方法,可以把一個Function對象轉(zhuǎn)換成js代碼。如果把對象通過toSource方法轉(zhuǎn)為代碼,并去掉function(...)(){...}里的function和(),就可以得到這個對象的代碼形式。

        使用方法如下:

        
          var obj = {
            name: 'Tom',
            age: 18,
            grade: {
              math: 90,
              english: 95
            },
            hobbies: ['reading', 'music']
          };
          var str = (function(){return this;}).call(obj).toSource();
          console.log(str);
        

        執(zhí)行結(jié)果為:

        
          ({name:"Tom",age:18,grade:{math:90,english:95},hobbies:["reading","music"]})
        

        三、eval方法

        eval方法可以執(zhí)行一段字符串形式的js代碼,把一個js對象轉(zhuǎn)換成一個可執(zhí)行的js字符串,所以可以用eval方法直接把一個對象轉(zhuǎn)換成一個字符串。

        使用方法如下:

        
          var obj = {
            name: 'Tom',
            age: 18,
            grade: {
              math: 90,
              english: 95
            },
            hobbies: ['reading', 'music']
          };
          var str = eval('(' + JSON.stringify(obj) + ')');
          console.log(str);
        

        執(zhí)行結(jié)果為:

        
          {name: "Tom", age: 18, grade: {…}, hobbies: Array(2)}
        

        四、toString方法

        toString方法是Object對象的一個原型方法,可以將一個對象轉(zhuǎn)換成字符串。但是這個方法只能將一個對象轉(zhuǎn)換成"[object Object]"這種基本形式的字符串。

        我們可以通過重寫Object對象的toString方法來實現(xiàn)對象轉(zhuǎn)字符串。

        使用方法如下:

        
          Object.prototype.toString = function(){
            return JSON.stringify(this);
          }
          var obj = {
            name: 'Tom',
            age: 18,
            grade: {
              math: 90,
              english: 95
            },
            hobbies: ['reading', 'music']
          };
          console.log(obj.toString());
        

        執(zhí)行結(jié)果為:

        
          {"name":"Tom","age":18,"grade":{"math":90,"english":95},"hobbies":["reading","music"]}
        

        五、自定義方法

        我們也可以通過自定義實現(xiàn)將一個js對象轉(zhuǎn)換成字符串。

        示例代碼如下:

        
          function obj2str(obj, len){
            var ndeep = len || 1;
            var gap = ''; 
            var indent = ''; 
            var i = 0; 
            for(i = 0; i < ndeep; i++)
            {
              indent += ' ';
            }
            gap = ndeep > 1 ? '\n' : '';
            if(typeof obj === 'object')
            { 
              var str = '';
              if(obj.constructor === Array)
              { 
                for(i = 0; i < obj.length; i++)
                {
                  str += gap + indent + obj2str(obj[i], ndeep + 1) + ', ';
                }
                return '[' + str.slice(0, -2) + '\n' + indent + ']';
              }
              else
              {
                for(var prop in obj)
                {
                  str += gap + indent + '"' + prop + '": ';
                  if(typeof obj[prop] === 'object')
                  {
                    str += obj2str(obj[prop], ndeep + 1) + ', ';
                  }
                  else if(typeof obj[prop] === 'function')
                  {
                    str += 'undefined' + ', ';
                  }
                  else
                  {
                    str += '"' + obj[prop] + '", ';
                  }
                }
                return '{' + str.slice(0, -2) + '\n' + indent + '}';
              }
            } 
            else
            { 
              if(typeof obj === 'string')
              {
                obj = '"' + obj + '"';
              }
              return String(obj);
            }
          }
        
          var obj = {
            name: 'Tom',
            age: 18,
            grade: {
              math: 90,
              english: 95
            },
            hobbies: ['reading', 'music']
          };
        
          var str = obj2str(obj);
          console.log(str);
        

        執(zhí)行結(jié)果為:

        
          {
           "name": "Tom", 
           "age": "18", 
           "grade": {
            "math": "90", 
            "english": "95"
           }, 
           "hobbies": [
            "reading", 
            "music"
           ]
          }
        

        六、總結(jié)

        以上是JS對象轉(zhuǎn)字符串的幾種方法,可以根據(jù)實際需要進行選擇。需要注意的是,F(xiàn)unction和eval方法存在安全問題,建議不要在生產(chǎn)環(huán)境中使用。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
        免費領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學 138****2860 剛剛成功領(lǐng)取
        王同學 131****2015 剛剛成功領(lǐng)取
        張同學 133****4652 剛剛成功領(lǐng)取
        李同學 135****8607 剛剛成功領(lǐng)取
        楊同學 132****5667 剛剛成功領(lǐng)取
        岳同學 134****6652 剛剛成功領(lǐng)取
        梁同學 157****2950 剛剛成功領(lǐng)取
        劉同學 189****1015 剛剛成功領(lǐng)取
        張同學 155****4678 剛剛成功領(lǐng)取
        鄒同學 139****2907 剛剛成功領(lǐng)取
        董同學 138****2867 剛剛成功領(lǐng)取
        周同學 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        镇巴县| 腾冲县| 榆树市| 措美县| 土默特左旗| 保靖县| 买车| 封开县| 临湘市| 平湖市| 敦化市| 铁力市| 长沙县| 榆树市| 桃源县| 勐海县| 青川县| 望城县| 博爱县| 如皋市| 鄄城县| 龙南县| 辽宁省| 交口县| 克拉玛依市| 区。| 高阳县| 崇阳县| 大新县| 雅江县| 固始县| 三门峡市| 潼南县| 江门市| 靖远县| 雷山县| 安西县| 五寨县| 昌图县| 辽阳市| 泸水县|