2012-11-07 72 views
0

如何才能得到這個Javascript字符串以JSON

var myString = 'a,b'; 
在最有效的方式

var myObject = { a:1, b:1}; 

以下

我需要1到每個PARAM關聯。謝謝。

+6

請花時間閱讀[什麼是JSON](http://www.json.org/)。我想,第一段就足夠了。 –

+3

你可以嘗試'// Abrakadabra',但它可能會失敗。 – jAndy

+0

你到底在問什麼,怎麼進入什麼?那第一行是錯誤的?你錯過了 」」? – epascarello

回答

5

假設你的字符串是真正定義爲

var myString = 'a,b'; 

那麼你可以得到你的對象

var obj = {}; 
var t = myString.split(','); 
for (var i=0; i<t.length; i++) obj[t[i]] = 1; 

這將使一個OBJ就像

var obj = { a:1, b:1}; 

注意,我沒有得到你的目標,所以這可能是無用的...

A面備註:

JSON是用於數據交換的文本格式。沒有什麼像JSON對象。 { a:1, b:1}只是一個帶有兩個屬性的普通JavaScript對象。

如果你想要的是真正的JSON,你可以做

var myJSON = JSON.stringify(obj); 

提斯將相當於

var myJSON = '{"a":1,"b":1}'; 
+0

這是一個可笑的答案......如果它沒有最後一行我會考慮甚至downvote:p – jAndy

+0

@jAndy爲什麼這是荒謬的?我做了所需的工作(或者至少是所要求的工作)。 –

+1

謝謝你快速詳盡的答案。只是我正在尋找的腳本。對於關於字符串關閉和調用對象JSON的愚蠢錯誤感到抱歉。漫長的一天。謝謝你,你們是最棒的! –

1

var myString = a,b;不會做你認爲的事。

,做什麼它設置myString等於ab值作爲undefined

做你想做的事,只是這樣寫:

var myJSON = { a:1, b:1}; 

p00f,它只是工作。


上述內容適用於OP的忍者編輯之前。

1

您可以使用此.split().reduce()

var result = myString.split(',') 
        .reduce(function(obj, key) { 
         return obj[key] = 1, obj; 
        }, {}); 

您需要爲老版本的JavaScript實現提供一個墊片。

+1

爲了更精確地描述「較舊的JavaScript實現」,這不適用於IE8(不是批評者,只是精確度)。 –

+0

@dystroy:這是一個公平的澄清。我今天很懶。 –