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"
}
}
]
}
Другой вариант - перебирать ключи словаря, извлекая каждый словарь значений в массив, а затем сортировать его в своем приложении.
Вы также можете найти программиста, который создал код сервера и выполнил соответствующие корректирующие действия;