Преобразовать массив обозначений в квадратных скобках из JavaScript в C #, используя JSON? - PullRequest
1 голос
/ 01 июня 2011

У меня есть это:

var testArray = [];
testArray["First"] = "First Test Data";
testArray["Second"] = "Second Test Data";
$.toJSON(testArray);

Затем я передаю его обратно на сервер. Когда я смотрю на объектную сторону сервера при обработке AJAX-запроса, все, что у меня есть, это «[]».

Есть ли способ сделать это или что-то подобное для достижения возможности поиска данных, переданных обратно от клиента?

Ответы [ 2 ]

5 голосов
/ 01 июня 2011

Вы должны сделать testArray объект :

var testArray = {};

Неправильный способ использования массивов.Только массивы должны иметь значения с числовыми индексами.В противном случае вы просто добавляете свойство в объект массива, и оно игнорируется при преобразовании в JSON.

DEMO

4 голосов
/ 01 июня 2011

Вы создаете массив, но затем используете его как объект.Вместо этого создайте объект, и он будет обработан правильно:

var testObject = {};
testObject["First"] = "First Test Data";
testObject["Second"] = "Second Test Data";
$.toJSON(testObject);

или просто:

var testObject = {
  First: "First Test Data",
  Second: "Second Test Data"
};
$.toJSON(testObject);

Если вы действительно хотите массив, то вы получаете доступ к элементам с помощью чисел, а не строк:

var testArray = [];
testArray[0] = "First Test Data";
testArray[1] = "Second Test Data";
$.toJSON(testArray);

или просто:

var testArray = ["First Test Data", "Second Test Data"];
$.toJSON(testArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...