大家好,我有个小问题。
有人能告诉我如何我将能够把这个字符串成json格式的数据?
one:apple;two:orange;three:bananna;four:pears
看起来像这样
{
one: apple,
two: orange,
three: bananna,
four: pears
}
使用 Array#forEach
/ String#split
var str = "one:apple;two:orange;three:bananna;four:pears";
var obj = {};
str.split(';').forEach(function(el) {
var x = el.split(':');
obj[x[0]] = x[1];
});
console.log(obj);
或使用Array#reduce
comma operator
计算它的每个操作数(从左到右)并返回最后一个操作数的值。
var str = "one:apple;two:orange;three:bananna;four:pears";
var obj = str.split(';').reduce(function(a, b) {
var x = b.split(':');
return a[x[0]] = x[1], a;
}, {});
console.log(obj);
DEMO
var str = "one:apple;two:orange;three:bananna;four:pears";
var arr = str.split(';'), obj = {}, i = 0;
for(; i < arr.length; i++){
var x = arr[i].split(':');
obj[x[0]] = x[1]
};
console.log(obj);
x = null;
// thanks to @Rayon for edit
您可以使用正则表达式来完成此操作。
var str = "one:apple;two:orange;three:bananna;four:pears"
var obj = '{"'+ str.replace(/;/g, ',').replace(/[:+,]/g, '"$&"') + '"}'
console.log(JSON.parse(obj))