JSON 维护数组排序的格式
JSON format for maintaining array sorting
我需要一位 JSON 专家或非常了解 JSON 的人。我通过 http 请求从 API 收到以下 JSON 结构。 API 按 itemDistance 对数据进行预排序,因为我在查询中指定了它。当我收到数据并通过 JSON 序列化处理它时,我失去了 API 所做的按 itemDistance 的排序。这很可能是因为它是字典格式并且需要在数组中。我正在构建一个 iOS 应用程序。
我的问题是:当我 运行 通过 JSON序列化?我正在努力改变下面的格式,所以它在一个数组中。我需要在下面放置什么类型的括号 and/or remove 以及它们需要放置的确切位置。
}
"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"
},
…
}]
}
我也是这样做的,但是这也没有什么区别。 运行通过JSON序列化运行时,订单仍然丢失。
}
"items": [
"234683": {
“itemID": "234683",
“itemCategory": “B",
"itemDistance": 8
},
"467528": {
“itemID": "467528",
“itemCategory": “B",
"itemDistance": "10"
},
"417928": {
“itemID": "417928",
“itemCategory": “A",
"itemDistance": "10"
},
…
]
}
您需要服务器 return 字典数组,而不是字典的字典。
你想要:
{
"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"
}
}
]
}
另一种选择是遍历字典键,将每个值字典提取到一个数组中,然后在您的应用程序中对其进行排序。
您可能还想找到创建服务器代码的程序员并采取适当的纠正措施;
我需要一位 JSON 专家或非常了解 JSON 的人。我通过 http 请求从 API 收到以下 JSON 结构。 API 按 itemDistance 对数据进行预排序,因为我在查询中指定了它。当我收到数据并通过 JSON 序列化处理它时,我失去了 API 所做的按 itemDistance 的排序。这很可能是因为它是字典格式并且需要在数组中。我正在构建一个 iOS 应用程序。
我的问题是:当我 运行 通过 JSON序列化?我正在努力改变下面的格式,所以它在一个数组中。我需要在下面放置什么类型的括号 and/or remove 以及它们需要放置的确切位置。
}
"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"
},
…
}]
}
我也是这样做的,但是这也没有什么区别。 运行通过JSON序列化运行时,订单仍然丢失。
}
"items": [
"234683": {
“itemID": "234683",
“itemCategory": “B",
"itemDistance": 8
},
"467528": {
“itemID": "467528",
“itemCategory": “B",
"itemDistance": "10"
},
"417928": {
“itemID": "417928",
“itemCategory": “A",
"itemDistance": "10"
},
…
]
}
您需要服务器 return 字典数组,而不是字典的字典。
你想要:
{
"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"
}
}
]
}
另一种选择是遍历字典键,将每个值字典提取到一个数组中,然后在您的应用程序中对其进行排序。
您可能还想找到创建服务器代码的程序员并采取适当的纠正措施;