你能在JSON字符串中的对象名称中有一个空格并仍然可以检索它吗?

时间:2016-05-27 14:59:15

标签: javascript html arrays json

我有一个JSON对象,如下所示:

$leo = {"Leonardo DiCaprio":{"ht":"70","wt":"222","eyes":"blue","movie":"titanic"}

但我很难访问数据。我试过了:

var json = JSON.parse($leo);
alert(json.'Leonardo DiCaprio'['movie']);

var json = JSON.parse($leo);
alert(json.['Leonardo DiCaprio']['movie']);

var json = JSON.parse($leo);
var name = 'Leonardo DiCaprio';
alert(json.name['movie']);

没有人对我有用。但是当我删除空间并发出警报时(json.LeonardoDiCaprio [' movie'];我得到了电影。

有没有办法检索数据并保留空间?

2 个答案:

答案 0 :(得分:3)

foo.barfoo['bar']语法是互斥的,但在大多数情况下表现相同。 foo.['bar']无效。

the specsection 12.3.2

中对此进行了描述
  

使用点表示法按名称访问属性:

MemberExpression . IdentifierName
CallExpression . IdentifierName
     

或括号表示法:

MemberExpression [ Expression ]
CallExpression [ Expression ]

点符号中使用的IdentifierName不得包含空格(section 11.6),因此在这种情况下必须使用括号表示法。

Unicode字符合法的确切规则在Unicode TR#31中定义,并在section 2中指定。

你需要做的就是json['Leonardo DiCaprio'],你将获取内部对象。

答案 1 :(得分:1)

你错过了结局"}"在JSON字符串$ leo。

-Amit