2014-08-30 172 views
-1

我的字符串是: - var str = '{ name : "some name", prop : "some class=\"className\"" }'; 如何將其轉換爲javascript對象?將json轉換爲字符串

我想是這樣的: -

obj.name應該返回some name

+2

過得好該字符串擺在首位?這不是有效的JSON,但它是有效的JavaScript。 – Pointy 2014-08-30 20:22:09

+0

什麼是這個有效的json字符串? – 2014-08-30 20:24:41

+0

你的代碼真的是這樣嗎?如果是這樣,它沒有任何意義,它開始作爲一個字符串。只需將其設爲一個普通的JavaScript對象文字。 – Pointy 2014-08-30 20:25:33

回答

4

如果你的代碼真的看起來是這樣的:

var str = '{ name : "some name", prop : "some class=\"className\"" }'; 

那麼你真正需要做的是創建一個JavaScript對象文字來代替:

var obj = { name : "some name", prop : 'some class="className"' }; 

如果你確實想在字符串形式,創建對象的文字,然後它字符串化:

var obj = { name : "some name", prop : 'some class="className"' }; 
var str = JSON.stringify(obj); 
+0

我會改變字符串。 – 2014-08-30 20:33:08

0
var o = JSON.parse(str); 

將大多數瀏覽器上運行,而不包括JSON庫。

+2

這不適用於OP中的字符串;它不是有效的JSON。 – Pointy 2014-08-30 20:20:38

+0

錯誤:意外的令牌n – 2014-08-30 20:21:04

+0

@Pointy我沒注意到,謝謝。 – rollingBalls 2014-08-30 20:24:19

0

您必須修改字符串。

var str = '{"name":"some name","prop":"some class=className"}'; 
    var obj = JSON.parse(str); 
    console.log(obj.name); 

小提琴http://jsfiddle.net/vgb7qwhj/

+0

'console.log()'不會發生,因爲字符串不是有效的JSON。 – Pointy 2014-08-30 20:22:49

+0

錯誤:意外的代幣n – 2014-08-30 20:23:10

+0

對不起,是的。 @Pointy是正確的。更新我的回答 – Ani 2014-08-30 20:28:15