繁体   English   中英

将逗号分隔的值转换为指定的json格式

[英]convert comma seperated values into specified json format

我正在使用一个名为taggle.js的插件来管理标签,我正在使用可用标签,它会在页面加载时显示一些标签,我提出了ajax请求并检索了数据,并且数据以逗号分隔,例如

OE,SLOTTED AND CROSSED DRILLED,JUST SLOTTED

现在插件正在使用以下格式

obj_buttons=['OE','SLOTTED AND CROSSED DRILLED','JUST SLOTTED'];

我如何将这个逗号分隔的字符串转换为指定的格式,我正在使用此代码

var mystring=data.buttons;//values received from ajax in format OE,SLOTTED AND CROSSED DRILLED,JUST SLOTTED
var json = [];
var to = mystring;
var toSplit = to.split(",");
for (var i = 0; i < toSplit.length; i++) {
    json.push(toSplit[i]);
}
        alert(json);
     }

任何形式的帮助将不胜感激

只需使用以下方法, 将您的字符串传递给此函数,它将输出您需要的json。

function commatoJson(obj_buttons){

  var lines= obj_buttons.split("\n");

  var result = [];

  var headers=lines[0].split(",");

  for(var i=1;i<lines.length;i++){

      var obj = {};
      var currentline=lines[i].split(",");

      for(var j=0;j<headers.length;j++){
          obj[headers[j]] = currentline[j];
      }

      result.push(obj);

  }

  //return result; //JavaScript object
  return JSON.stringify(result); //JSON
}

请参阅此以获取更多信息https://gist.github.com/iwek/7154578

对于没有键/值对的简单字符串

 alert(commatoJson("OE,SLOTTED AND CROSSED DRILLED,JUST SLOTTED"));

 function commatoJson(obj_buttons){
  var result = [];
  var headers=obj_buttons.split(",");
      for(var j=0;j<headers.length;j++){
          result.push(headers[j]);
      }
  //return result; //JavaScript object
  return JSON.stringify(result); //JSON
}

似乎您正在尝试将对象转换为字符串,有一个stringify函数可以实现它:

    var mystring = "OE,SLOTTED AND CROSSED DRILLED,JUST SLOTTED";
    var json = [];
    var to = mystring;
    var toSplit = to.split(",");
    for (var i = 0; i < toSplit.length; i++) {
        json.push(toSplit[i]);
    }
    var result = JSON.stringify(json);
    alert(result);

要将单引号替换为双引号,可以使用regex替换:

    json = JSON.stringify(json);
    json = json.replace(/(\")/g, "'");
    alert(json);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM