2009-05-11 7 views
0

にSilverlightで私のようなJsonArrayを作成しています:私は呼び出しを介した.aspxページで私JavaScriptにJSON値を出荷していますJsonArrayではJavaScript

その後
JsonArray jsonValues = new JsonArray(); 
for(int i = 0; i < values.Count; i++) 
{ 
    var someSingleValue = values[i]; 
    jsonValues.Add(string.Format("Name: {0}", someSingleValue)); 
} 

: HtmlPage.Window.Invoke(」コール "、jsonValues);

コールは機能していますが、これらの値を反復処理する方法、つまりそれらを抽出する方法はわかりません。 任意のアイデア

for(var i = 0; i < somevalues.length; i++) { 
      alert(somevalues[i]); 
      } 

をそれがクラッシュする(両方のケースで):私も試した

for (var x in somevalues){ alert(somevalues); }  

(JavaScriptで): は、私が試してみましたか。?あなたが何をしたか

for(var i = 0; i < somevalues.length; i++) { 
    // do something with somevalues[i] 
} 

似てsomevaluesオブジェクトのプロパティを反復処理するためにJavaScriptを伝えるが、同じではない、とした。somevaluesを想定し

+0

somevalues変数宣言はどのようにHTMLページに表示されますか? –

+0

いくつかの値がドロップダウンリストに入力されます。 – ra170

+0

これは私が尋ねたことではない - 私はそれが何のために使われているか尋ねなかった。 "somevalues"という変数を宣言して初期化するために何がレンダリングされるのか知りたい。 –

答えて

1

文字列をJSONオブジェクトにシリアル化するためにevalメソッドを使用していますか?

function call(somevalues){ 

    //somevalues is currently just a string. 
    var results = eval("(" + somevalues +")"); 

    //results now should contain your array as a JSON object.  

    //and you should be able to iterate over it at this point. 
    for(var i = 0; i < results.length; i++){ 
    alert(results[i]); 
    } 
} 
+0

私は前にevalを使ってみましたが、間違えて括弧 "(" + ")を使用しませんでした。ありがとう! – ra170

+0

正直なところ、evalを使用しないでください。JSONをJavaScriptオブジェクトに変換するには、安全なJSONパーサを使用する必要があります。それらのためのGoogle、彼らは存在し、eval()がしない保護をあなたに提供します。 –

+0

信頼できない入力があるevalを使用しないことに関するヒント。私はGoogle Codeでそれを行うプロジェクトを見つけ、json.orgから入手可能な明らかに一般的なJSONパーサーと比較します http://code.google.com/p/json-sans-eval/ – sgriffinusa

-1

は本当に配列である、あなたはこのようにそれを行います反復は通常のforループを使用します。


EDIT:somevaluesは文字列です。ちょうどalert(somevalues)を実行し、何が起こるかを見てください。

+0

私はこれを試みましたが、エラーが発生しました:オブジェクトがこのプロパティまたはメソッドをサポートしていません – ra170

+0

はい、文字列でした。 – ra170