簡體   English   中英

我如何使用angular將逗號分隔的字符串轉換為json對象類型

[英]How can i convert a comma seperated string to json object type using angular

作為angular js的初學者,我很震驚地將逗號分隔的字符串從MySQL db轉換為波紋管類型輸入的json對象:

excellent,very_good,good,poor

輸出:

 Object {excellent: "excellent", very_good: "very_good", good: "good",poor: "poor" }

我嘗試過

  var data='excellent,very_good,good,poor'; if(data!=null){ data= data.split(',').reduce((res,x)=>{ res[x] = x; return res },{}); } console.log(data); 

它可以工作,但問題是它在Safari中不支持。

這可能是由於reduce()兼容性問題,所以請使用簡單的for循環代替

 var data = 'excellent,very_good,good,poor'; var strArr = data != null ? data.split(',') : [], res = {}; for (var i = 0; i < strArr.length; i++) res[strArr[i]] = strArr[i]; document.write('<pre>' + JSON.stringify(res, 0, 3) + '</pre>'); 


或選中舊瀏覽器的減少polyfill選項。

這是應該完成此工作的示例代碼:

 var data = 'excellent,very_good,good,poor'; var item = ''; var result = {}; if(data !== null) { data = data.split(','); for(var i = 0; i < data.length; i++) { item = data[i].trim(); result[item] = item; } } console.log(result); 

 var app = angular.module('myApp', []); app.controller('formCtrl', function($scope) { var data = 'excellent,very_good,good,poor'; var jsonfied = { dataObj: data.replace(/,$/, "").split(",").map(function(name) { return { name: name }; }) }; $scope.master = jsonfied; }); 
 <!DOCTYPE html> <html> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="formCtrl"> Maser :- {{master}} <br/> <br/> </div> </body> </html> 

你也可以這樣做

var data = "excellent,very_good,good,poor".split(','),
    res = {};
angular.forEach(data, function(value, key){
   res[value] = value;
});
console.log(res);

我希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM