2016-04-20 14 views
0
var testjson = [{"Student-Records":[{"Name":"John",}]}] 

var sturec= names[k]; 

// where names[k] is Student-Records 
/* Proc 1 */ var temporaryjsondata = testjson [0][sturec]; 
/* Proc 2 */ var temporaryjsondata = testjson [0]["'"+sturec+"'"]; 
/* Proc 3 * Static data */ var temporaryjsondata = testjson [0]['Student-Records']; 

alert(JSON.stringify(temporaryjsondata)); 

procの3が静的であるが、エラーなしで正常に動作しますが、私はproc 1 and 2を.Followingなどsturecなどの動的な値でそれをフィルタリングする必要がありますが、適切なデータと警告与えるが、エラーの下に与えます:MozillaでTypeError例外データを取得中に動的にJSONから

:Chromeで

TypeError: temporaryjsondata is undefined 

Uncaught TypeError: Cannot read property '0' of undefined 

上記の方法でエラーがあり、データを動的に取得する方法を教えてもらえますか?ここにはfiddleがあります。上の例は、フィドルで完璧に動作しますが、私のアプリケーションコードでは失敗します。上記のエラーにつながる可能性があるものは何ですか?

+0

'上記の例は、完全にうまく動作しますが、アプリケーションコードに失敗しますが、あなたは他のコードを見ている必要があります。 –

+0

あなたは 'testjson'と' [0] 'のスペースを削除しようとしましたか? – t1m0n

答えて

2

多分、jsFiddleはあなたの厳格なクライアントよりも寛容でしょうか?

var testjson = [{"Student-Records":[{"Name":"John",}]}] 

"John"の後には意味をなさないコンマがあります。

var sturec= names[k]; 

- 「名前」は「k」と同じように定義されていません。

// where names[k] is Student-Records 
/* Proc 1 */ var temporaryjsondata = testjson [0][sturec]; 
/* Proc 2 */ var temporaryjsondata = testjson [0]["'"+sturec+"'"]; 
/* Proc 3 * Static data */ var temporaryjsondata = testjson [0]['Student-Records']; 

- "sturec"はどこにも(それぞれ偽って)定義されていません。
- testjson[0]の間のスペースを削除してください。
- ["'"+sturec+"'"]は意味を持ちません。 sturecには既に文字列が含まれているか、それ以外の場合は(数字が含まれていても文字列として必要な場合は必ず)、[""+sturec]を使用してください。

実際のコードをご提供ください。お手数をおかけいたしますよう、よろしくお願いいたします。

さらに複雑なコードの部分的な部分しか提供していないため、エラーメッセージが実際に提供されたコードに適合しないため、警告が範囲内にある間にtemporaryjsondataを取得しようとしていますか?

関連する問題