2013-01-13 81 views
0

我觉得很愚蠢。 我得到这个字符串:无法访问JSON中的变量

var myString = "({"week":{"@attributes": "Some stuff"}});"; 

不,我解析它以JSON:

var myobject = JSON.parse(myString); 

,然后我试图通过访问它:

myobject.week or myobject["week"] 

两种方式都没有加工。我究竟做错了什么?

+2

你输入字符串不是有效的JSON。 – Joe

+0

我从我大学的api中获得了这个。我以为他们给我有效的JSON。如何纠正?去掉 ();? –

+3

看起来像缺少函数名称的JSONP。你如何获取数据?您可能需要在URL中传递一个'callback'参数并创建一个具有相同名称的函数(这就是JSONP的工作方式,查看它)。 –

回答

3

这不是一个有效的json字符串。你必须删除()和;

{"week":{"@attributes": "Some s***"}} 
0

这不是有效的JavaScript:

var myString = "({"week":{"@attributes": "Some stuff"}});"; 
因为字符串中的无效使用引号

这会工作为有效javscript字符串:

var myString = '({"week":{"@attributes": "Some stuff"}});'; 

而且,如果你想与JSON.parse()解析它,你应该删除外括号和分号是这样的:

var myString = '{"week":{"@attributes": "Some stuff"}}'; 
var myobject = JSON.parse(myString); 
console.log(myobject.week);