Отключение переупорядочения JSON - PullRequest
0 голосов
/ 01 марта 2012

Я создаю некоторые данные JSON для проверки с помощью вызова ajax.

Вот мой сконструированный JSON:

{"telephone1":"66",
 "telephone2":"66",
 "fax":"66",
 "mobilePhone":"66",
 "dateEffectiveChangementAdresseOuTel":"66",
 "adresse1IdentiqueAdresse2":true}

Вот один из полученных:

{ "adresse1IdentiqueAdresse2" : true,
  "dateEffectiveChangementAdresseOuTel" : "66",
  "fax" : "66",
  "mobilePhone" : "66",
  "telephone1" : "66",
  "telephone2" : "66"
}

Как вы можете заметить, мой ключ переупорядочен в алфавитном порядке, чего я не хочу.

Это приводит к тому, что ошибки возвращаются на страницу во 2-м порядке, но они мне нужны в 1-м порядке. Я хочу, чтобы моя сводка ошибок (Html.ValidationSummary) отслеживала ошибки на странице (1-я ошибка = 1-е поле в ошибке).

Есть ли способ сохранить мой первоначальный заказ?
Или как-то обойти это?

редактировать

        var coord = {
            telephone1: $("#Telephone1").val(),
            telephone2: $("#Telephone2").val(),
            fax: $("#Fax").val(),
            mobilePhone: $("#MobilePhone").val(),
            dateEffectiveChangementAdresseOuTel: $("#DateEffectiveChangementAdresseOuTel").val(),
            adresse1IdentiqueAdresse2: $("#Adresse1IdentiqueAdresse2").is(":checked")
        };

        $.ajax({
            type: 'POST',
            url: urlControleur + '_ActionTransmettre',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            data: JSON.stringify(coord),
            success: function (data, textStatus, jqXHR) {
                if (typeof (data) == "string") {
                    window.location = data
                    MsgErreur("");
                }
                else {
                    ListeMsgErreur(data);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                handleAjaxError(XMLHttpRequest, "M000017");
            }
        });

возврат вызова ajax (по ошибке)

["The value {0} is not valid for Effective.",
"Le numéro saisi doit respecter le format 999 999-9999",
"Le numéro saisi doit respecter le format 999 999-9999",
"Le numéro saisi doit respecter le format 999 999-9999 ou, si vous devez saisir un numéro de poste, le format est 999 999-9999 x 9999999.",
"Le numéro saisi doit respecter le format 999 999-9999"]

Невозможно изменить порядок возврата как есть.

1 Ответ

0 голосов
/ 01 марта 2012

Я бы пересмотрел код, который возвращает JSON. это то, где это происходит. если вы не можете изменить код, который отображает JSON, переделайте данные перед тем, как передать их

return {
   telephone1: theJson.telephone1,
   telephone2: theJson.telephone2,
   fax: theJson.fax,
   mobilePhone: theJson.mobilePhone,
   dateEffectiveChangementAdresseOuTel: theJson.dateEffectiveChangementAdresseOuTel,
   adresse1IdentiqueAdresse2: thsJson.adresse1IdentiqueAdresse2
};
...