2014-08-30 107 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