2016-05-27 14 views
2

私は、次のような表示される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 [「映画」]警告を行うとき、私は映画を得る

データを取得し、スペースを保つためにどのような方法があります

+1

ドット表記ではなく、表記法を使用する必要があります。 – Robusto

答えて

3

foo.barfoo['bar']構文は?ほとんどの場合、相互に排他的ですが、同じように動作foo.['bar']が有効でない

これはsection 12.3.2the specで説明されています。。

プロパティは、ドットnのいずれかを使用して、名前によってアクセスされていますotation:

MemberExpression . IdentifierName 
CallExpression . IdentifierName 

やブラケット表記:あなたが、その場合にはブラケット表記法を使用しなければならないので、ドット表記法で使用

MemberExpression [ Expression ] 
CallExpression [ Expression ] 

IdentifierNameは、空白(section 11.6)を含めることはできません。

Unicode文字が有効である正確な規則は、Unicode TR#31で定義され、section 2で指定されています。

ここで行う必要があるのはjson['Leonardo DiCaprio']なので、内側のオブジェクトを取得します。

+0

ありがとうございます。私はこの仕様を見つけることができませんでした。それを感謝します – L0n3Prospector

1

JSON String $ leoの末尾に "}"がありません。

-Amit

+0

これは質問のコメントでなければなりません。参考にしていますが、OPの問題は解決しません。 – ssube

+0

まだコメントできませんので、回答として投稿しているようです。 – Amit

関連する問題