2017-06-27 16 views
1
{ 
    "Meta Data": { 
    "1: Symbol": "MSFT", 
    "2: Indicator": "Triple Exponential Moving Average (TEMA)", 
    "3: Last Refreshed": "2017-06-26 16:00:00", 
    "4: Interval": "15min", 
    "5: Time Period": 10, 
    "6: Series Type": "close", 
    "7: Time Zone": "US/Eastern" 
} 
} 

私はまずJSONとAJAXの学習を始めました。これは愚かな質問のように聞こえるかもしれません。最近では、このJSON出力テキストが見つかりました。しかし、そこに私が持っているいくつかの問題があります。まず第一に、いくつかのキーに_がついていない2つの単語があります。どうやってそれらをjavascriptで使うことができますか?私はあなたがそれにスペースを持つメソッドを持つことができないことを意味します、そうですか?私の2番目の問題は、最初の問題に関連しています。この1:2のように始まるキーもあるからです。どうしたの?誰かが私にどのように例えばJavaScriptの "5:time period"キーに達することができるかを示すことができれば、それは大きな助けになるでしょう。奇妙なJSONキー

答えて

3

この場合のキーは文字列であるため、文字列を使用してキーにアクセスします。あなたはval変数にこのJSONをロードしたと仮定すると、あなたは

val["Meta Data"]["1: Symbol"] 
+0

ありがとうございました!私はそれが簡単でなければならないことを知っていました、それはかなり分かりませんでした。 –

+0

これはval [0] [0]も使用できることを意味します。 –

+1

@ArmanDaneshvarの間違った原因valがオブジェクトではありません。 –

0

を使用することができますJSONでの引用符の間に何が文字列であるので、あなたが_を必要としない理由があり、かつ内のすべての文字がの一部でありますその同じ文字列オブジェクト。

JavaScriptでJSONプロパティにアクセスするには、ブラケット表記([])またはオブジェクト表記(object.property)を使用します。この場合、プロパティはスペースを含む文字列なので、ブラケット記法を使用する必要があります。

したがって、このオブジェクトを変数として格納しているとします(たとえば、objなど)。obj["5: Time Period"]を実行して5: Time Periodを取得できます。

希望に役立ちます!

+0

本当に助けますが、このobj [4]を実行することもできますか? –

+0

いいえ、 '" 4:Interval "'のようなものがすべて同じ文字列内にあるためです。 '4'を単独でプロパティにしたい場合は、' {4:{"Interval":... ' – josephmbustamante