JsonArray в Silverlight для JavaScript - PullRequest
0 голосов
/ 12 мая 2009

Я создаю JsonArray, например:

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

После этого я отправляю значения json в свой javascript на странице .aspx через вызов: HtmlPage.Window.Invoke ("call", jsonValues);

Вызов работает, и он приходит, но я не знаю, как перебрать эти значения, т.е. извлечь их. Я пробовал: (в JavaScript)

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

Я тоже пробовал:

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

но вылетает. (В обоих случаях) есть идеи?

Ответы [ 2 ]

1 голос
/ 12 мая 2009

Используете ли вы метод eval для сериализации строки в объект JSON?

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 голосов
/ 12 мая 2009

Предполагая, что somevalues ​​действительно является массивом, вы делаете это так:

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

То, что вы сделали, сказали JavaScript перебирать свойства объекта somevalues, который похож, но не совпадает с итерацией, используя обычный цикл for.


РЕДАКТИРОВАТЬ: Я готов поставить вашу переменную, somevalues это строка. Просто сделайте alert(somevalues) и посмотрите, что получится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...