2013-08-12 152 views

回答

6

你不需要的jQuery爲。

var s = "x:100%,y:20%,radius:50%"; 
var json = JSON.stringify(
    s.split(',').reduce(function(m,v) { 
     var t = v.split(':'); 
     m[t[0]] = t[1]; 
     return m; 
    }, {}) 
); 

Demonstration

如果你想與IE8兼容,加a shim for reduce

+0

+1桑卡超快編輯解析字符串製作... –

+0

由於它是工作 – user007

1

它不是一個好主意,但你可以這樣做:

var j = 'x:100%,y:20%,radius:50%' 
j = '{"' + j.replace(/:/g,'":"').replace(/,/g,'","') + '"}' 
console.log(j) 

{"x":"100%","y":"20%","radius":"50%"} 

然後你就可以使用JSON

JSON.parse(j) 

Object {x: "100%", y: "20%", radius: "50%"} 
+0

可以請你描述爲什麼它不好? – user007

+2

@ user007,因爲除非您完全知道JSON格式和您提供的值,否則應該始終讓可用庫爲您編碼。例如,引號可能需要被轉義。 –

+1

@ user007,因爲這會替換逗號和冒號,如果您的值包含這些字符。可能出了什麼問題 – pylover