JSON формат для поддержки сортировки массива

Мне нужен эксперт по JSON или тот, кто хорошо знает JSON. У меня есть следующая структура JSON, которую я получил от API через http-запрос. API предварительно сортирует данные по itemDistance, потому что я указал это в своем запросе. Когда я получаю данные и обрабатываю их через JSONSerialization, я теряю упорядочение по itemDistance, которое сделал API. Скорее всего, потому что он в формате словаря и должен быть в массиве. Я создаю приложение для iOS.

У меня такой вопрос: какие именно изменения необходимо внести в структуру JSON ниже, чтобы упорядочить элементы по locationDistance, когда я запускаю его через JSONSerialization? Я борюсь с изменением формата ниже, чтобы он был в массиве. Какой тип кронштейнов мне нужно разместить и / или снять ниже, и где именно они должны быть расположены.

}
    "items": {
            "234683": {
                “itemID": "234683",
                “itemCategory": “B",
                "itemDistance": 8
            },
            "467528": {
                “itemID": "467528",
                “itemCategory": “B",
                "itemDistance": "10"

            },
            "417928": {
                “itemID": "417928",
                “itemCategory": “A",
                "itemDistance": "10"

            },

    …


    }
}

Кстати, я попытался добавить квадратные скобки вокруг списка элементов в "элементах", как показано ниже, но это не помогло или не изменило ситуацию.

}
                "items": [{
                        "234683": {
                            “itemID": "234683",
                            “itemCategory": “B",
                            "itemDistance": 8
                        },
                        "467528": {
                            “itemID": "467528",
                            “itemCategory": “B",
                            "itemDistance": "10"

                        },
                        "417928": {
                            “itemID": "417928",
                            “itemCategory": “A",
                            "itemDistance": "10"

                        },

                …


                }]
}

Я тоже так делал, но это тоже не имело значения. Порядок все еще теряется при запуске через JSONSerialization.

}
        "items": [
                "234683": {
                    “itemID": "234683",
                    “itemCategory": “B",
                    "itemDistance": 8
                },
                "467528": {
                    “itemID": "467528",
                    “itemCategory": “B",
                    "itemDistance": "10"

                },
                "417928": {
                    “itemID": "417928",
                    “itemCategory": “A",
                    "itemDistance": "10"

                },

        …


        ]
}

1 ответ

Решение

Вам нужен сервер для возврата массива словарей, а не словаря словарей.

Ты хочешь:

{
    "items": [{
            "itemID": "234683",
            "itemCategory": "B",
            "itemDistance": 8
        },
        {
            "itemID": "467528",
            "itemCategory": "B",
            "itemDistance": "10"

        },
        {
            "itemID": "417928",
            "itemCategory": "A",
            "itemDistance": "10"

        }
    ]
}

Или, если вы не можете изменить API для удаления ненужного словаря, вы можете заключить каждый словарь в другой словарь, а затем поместить эти словари в массив, чтобы сохранить порядок.

{
    "items": [{
            "234683": {
                "itemID": "234683",
                "itemCategory": "B",
                "itemDistance": 8
            }
        },
        {
            "467528": {
                "itemID": "467528",
                "itemCategory": "B",
                "itemDistance": "10"
            }
        }, {
            "417928": {
                "itemID": "417928",
                "itemCategory": "A",
                "itemDistance": "10"

            }
        }
    ]
}

Другой вариант - перебирать ключи словаря, извлекая каждый словарь значений в массив, а затем сортировать его в своем приложении.

Вы также можете найти программиста, который создал код сервера и выполнил соответствующие корректирующие действия;

введите описание изображения здесь

Другие вопросы по тегам