簡體   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