Как не упорядочить мои данные с помощью $ .parseJSON - PullRequest
0 голосов
/ 05 ноября 2019

Я сортирую свои данные в запросе sql, а затем json_encode данных. Это дает мне что-то вроде этого.

{
  "9535": {
    "id_contrat": "9535",
    "statut_contrat": "A",
    "etat_contrat": "B",
    "num_publication": "1299-6793"
  },
  "1621723": {
    "id_contrat": "1621723",
    "statut_contrat": "N",
    "etat_contrat": "A",
    "num_publication": "1299-6793"
  }
}

Проблема в том, что когда я использую $.parseJSON, он сортирует мне данные следующим образом.

9535: {id_contrat: "9535", statut_contrat: "A", etat_contrat: "B", num_publication: "1299-6793"}
1621723: {id_contrat: "1621723", statut_contrat: "N", etat_contrat: "A", num_publication: "1299-6793"}

Я хочу сохранить тот же порядокдо моего $.parseJSON, потому что я создаю опцию выбора со значением данных и первым параметром должен быть 1621723, а не 9535, потому что я использую контроли для первого элемента опции.

Моя текущая функция:

function setContractField(msg)
{
    var option = '';
    var idContrat;
    var statutContrat;
    var etatContrat;
    var numPublication;
    console.log(msg);
    console.log($.parseJSON(msg));
    $.each($.parseJSON(msg), function(index,value) {
        $.each(value, function(key, value) {
            if(key == 'id_contrat') {
                idContrat = value;
            }
            if(key == 'statut_contrat') {
                statutContrat = value;
            }
            if(key == 'etat_contrat') {
                etatContrat = value;
            }
            if(key == 'num_publication') {
                numPublication = value;
            }

        });
        option += '<option status="'+ statutContrat + '" etat="'+ etatContrat + '" value="'+ idContrat + '">' + idContrat + '</option>';
    });
    return option;
}

В интернете я увидел, что мне нужно создать массив с результатом parseJson, но я не понимаю, как.

Два объекта должны быть упорядочены по алфавиту на etat_contrat поле.

...