Я хочу сортировать следующую информацию по строковому значению (а не по номеру ключа). Я могу преобразовать его в словарь и заказать по значению («AAA» и «CCC») в коде ниже ... теперь единственный вопрос: как преобразовать словарь в тот же формат ниже в функции parseJSON ? Я не могу изменить формат JSON, так что это не может быть и речи. Любые другие способы оцениваются. Я не могу переместить его в массив или что-то еще. Как указано в моем вопросе, формат JSON существует как есть, и я не могу его изменить.Как заказать элементы, возвращенные в формате JSON?
var studentCollection.Groups = $.parseJSON("{\"1000\":\"CCC\", \"1001\":\"AAA\"}");
//Sorting the studentCollection.Groups dictionary.
//Even though the groups come back as valid/sorted JSON
//upon parsing the JSON, the groups sorting gets lost
var items = Object.keys(studentCollection.Groups).map(function (key) {
return [key, studentCollection.Groups[key]];
});
items.sort(function (first, second) {
if (first[1] < second[1])
return -1;
if (first[1] > second[1])
return 1;
return 0;
});
вы спрашиваете как преобразовать ваш многомерный массив, хранящийся в 'items' обратно в объект? Почему вы заботитесь о заказе объекта? Свойства объекта не имеют значимого «упорядочения» по определению. –
Возможный дубликат [Сортировка объекта JavaScript по значению свойства] (http://stackoverflow.com/questions/1069666/sorting-javascript-object-by-property-value) –
Проблема в том, что если вы преобразуете отсортированный массив назад к объекту, поскольку объекты не имеют порядка, это было бы бесполезно. Поэтому либо стройте массив, либо создайте свой собственный строковый JSON. – Oriol