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

时间:2016-09-28 12:32:30

标签: javascript tags

我正在使用一个名为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);
     }

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

2 个答案:

答案 0 :(得分:0)

只需使用以下方法将您的字符串传递给此函数,这将输出您需要的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
}

答案 1 :(得分:0)

您似乎正在尝试将对象转换为字符串,有一个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);

要用单引号替换双引号,可以使用替换为正则表达式:

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