Home  >  Q&A  >  body text

javascript - { "a":"1","b":"2"} 怎么能快速变成 "a:1;b:2",效率高点?

rt:我现在是比较笨的方法,把单个json循环单个拼接;如果json数据大的话,效率会比较低吧!
然后又想着用JSON.stringify变成字符串后,在正则去掉{}什么的;
不知道还有其他方法吗?

阿神阿神2771 days ago651

reply all(7)I'll reply

  • 巴扎黑

    巴扎黑2017-04-11 11:05:22

    '{"a":"1","b":"2"}'.replace(/"|{|}/g, "").replace(/,/g, ";")

    reply
    0
  • PHP中文网

    PHP中文网2017-04-11 11:05:22

    Object.keys({"a":"1","b":"2"}).map(function(key){return key+':'+info[key]}).join(';');

    reply
    0
  • PHP中文网

    PHP中文网2017-04-11 11:05:22

    这样行不行:

    'use strict';
    
    var info = {a: '1', b: '2'};
    
    var keys = Object.keys(info);
    
    var str = keys
        .reduce((p, key, i) => p + key + ':' + info[key] + (i === keys.length - 1 ? '' : ';'), '');
    
    console.log(str); //a:1;b:2

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-11 11:05:22

    你是要解析json吗?可以直接用each()或者for也可以

    reply
    0
  • PHP中文网

    PHP中文网2017-04-11 11:05:22

    我觉得效率是一样的吧

    reply
    0
  • 高洛峰

    高洛峰2017-04-11 11:05:22

    可以用jQuery的map工具方法

    var obj = {"a":"1","b":"2","c":"3"};
    var str = $.map(obj,function(n,index){return ''+index+':'+n;}).join(';');//"a:1;b:2;c:3"

    reply
    0
  • 迷茫

    迷茫2017-04-11 11:05:22

    var obj = {"a":"1","b":"2","c":"3"};
    var str = JSON.stringify(obj).replace(/"|{|}/g, "").replace(/,/g, ";")

    reply
    0
  • Cancelreply