gpt4 book ai didi

ios - 维护数组排序的JSON格式

转载 作者:行者123 更新时间:2023-11-28 21:09:18 24 4
gpt4 key购买 nike

我这里需要 JSON 专家或非常了解 JSON 的人。我有以下通过 http 请求从 API 收到的 JSON 结构。 API 按 itemDistance 对数据进行预排序,因为我在查询中指定了它。当我收到数据并通过 JSONSerialization 处理它时,我失去了 API 所做的按 itemDistance 的排序。这很可能是因为它是字典格式并且需要在数组中。我正在构建一个 iOS 应用程序。

我的问题是:当我通过 JSONSerialization 运行它时,需要对下面的 JSON 结构进行哪些确切的更改才能按 locationDistance 维护项目顺序?我正在努力改变下面的格式,所以它在一个数组中。我需要在下面放置和/或移除什么类型的支架,以及它们需要放置的确切位置。

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

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

},




}
}

顺便说一句,我尝试在“items”中的项目列表周围添加方括号,如下所示,但这没有帮助或有所作为。

}
"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"

},




]
}

最佳答案

您需要服务器返回一个字典数组,而不是字典的字典。

你想要:

{
"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"

}
}
]
}

另一种选择是遍历字典键,将每个值字典提取到一个数组中,然后在您的应用中对其进行排序。

您可能还想找到创建服务器代码的程序员并采取适当的纠正措施;

enter image description here

关于ios - 维护数组排序的JSON格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44295858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com