[英]How convert JS Multiple Object string seperated by comma to js object or 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.