javascript - json 十六進位被轉換為字串

來源:互聯網
上載者:User

var cmd = ["0x02,0x03,0xB4,0xB4,0x00,0x06","0x00,0x02,0x6E,0x00,0x00,0x05","0x01,0x01,0x00,0x78,0x00,0x05","0x03,0x03,0x82,0x96,0x00,0x05"];
var cmd1=[0x02, 0x03, 0xB4, 0xB4, 0xFF, 0xFF,0x02, 0x03, 0xB4, 0xB4, 0x00, 0x06,0x00, 0x02, 0x6E, 0x00, 0x00, 0x05,0x01, 0x01, 0x00, 0x78, 0x00, 0x05,0x03, 0x03, 0x82, 0x96, 0x00, 0x05];
var test =["0x02,0x03,0xB4,0xB4,0x00,0x06","0x00,0x02,0x6E,0x00,0x00,0x05","0x01,0x01,0x00,0x78,0x00,0x05","0x03,0x03,0x82,0x96,0x00,0x05"];
var cloud = [0x02, 0x03, 0xB4, 0xB4, 0xFF, 0xFF,    0x02, 0x03, 0xB4, 0xB4, 0x00, 0x06,    0x00, 0x02, 0x6E, 0x00, 0x00, 0x05,    0x01, 0x01, 0x00, 0x78, 0x00, 0x05,    0x03, 0x03, 0x82, 0x96, 0x00, 0x05];

代碼如上

cmd 是通過PHP 轉換得到的16進位編碼但是JS 取到的時候已經變成了字串
想實現將cmd 變成跟cmd1 一樣的十六進位 藍色部分為想要的效果 紅色是資料內容

回複內容:

var cmd = ["0x02,0x03,0xB4,0xB4,0x00,0x06","0x00,0x02,0x6E,0x00,0x00,0x05","0x01,0x01,0x00,0x78,0x00,0x05","0x03,0x03,0x82,0x96,0x00,0x05"];
var cmd1=[0x02, 0x03, 0xB4, 0xB4, 0xFF, 0xFF,0x02, 0x03, 0xB4, 0xB4, 0x00, 0x06,0x00, 0x02, 0x6E, 0x00, 0x00, 0x05,0x01, 0x01, 0x00, 0x78, 0x00, 0x05,0x03, 0x03, 0x82, 0x96, 0x00, 0x05];
var test =["0x02,0x03,0xB4,0xB4,0x00,0x06","0x00,0x02,0x6E,0x00,0x00,0x05","0x01,0x01,0x00,0x78,0x00,0x05","0x03,0x03,0x82,0x96,0x00,0x05"];
var cloud = [0x02, 0x03, 0xB4, 0xB4, 0xFF, 0xFF,    0x02, 0x03, 0xB4, 0xB4, 0x00, 0x06,    0x00, 0x02, 0x6E, 0x00, 0x00, 0x05,    0x01, 0x01, 0x00, 0x78, 0x00, 0x05,    0x03, 0x03, 0x82, 0x96, 0x00, 0x05];

代碼如上

cmd 是通過PHP 轉換得到的16進位編碼但是JS 取到的時候已經變成了字串
想實現將cmd 變成跟cmd1 一樣的十六進位 藍色部分為想要的效果 紅色是資料內容

cmd.join().split(',').map(function(v) {return parseInt(v,16);});

JSON.stringify()
括弧裡寫變數

cmd.join().split(',').map(function(v) {return parseInt(v);});

var cmd = ["0x02,0x03,0xB4,0xB4,0x00,0x06","0x00,0x02,0x6E,0x00,0x00,0x05","0x01,0x01,0x00,0x78,0x00,0x05","0x03,0x03,0x82,0x96,0x00,0x05"];var cmd1 = [];// 轉換為整數數組cmd.forEach(function(d){    d.split(",").forEach(function(d){        cmd1.push(parseInt(d));    })});// 列印輸出16進位格式字串var output = "var cmd1=[";cmd1.forEach(function(d,i){    var _u = d.toString(16).toUpperCase();    output += "0x"+ (_u.length<2 ? "0"+_u : _u);    if(i!=cmd1.length-1) output+=",";});output += "]";// 輸出字串:var cmd1=[0x02,0x03,0xB4,0xB4,0x00,0x06,0x00,0x02,0x6E,0x00,0x00,0x05,0x01,0x01,0x00,0x78,0x00,0x05,0x03,0x03,0x82,0x96,0x00,0x05]console.log(output);
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.