【发布时间】:2015-06-11 13:03:05
【问题描述】:
我有一个带有“票”列表的大 json 对象。架构如下所示
{
"Artist": "Artist1",
"Tickets": [
{
"Id": 1,
"Attr2Array": [
{
"Att41": 1,
"Att42": "A",
"Att43": null
},
{
"Att41": 1,
"Att42": "A",
"Att43": null
},
],
.
.
.
(more properties)
"Price": "20",
"Description": "I m a ticket"
},
{
"Id": 4,
"Attr2Array": [
{
"Att41": 1,
"Att42": "A",
"Att43": null
},
{
"Att41": 1,
"Att42": "A",
"Att43": null
},
],
.
.
.
.
(more properties)
"Price": "30",
"Description": "I m a ticket"
}
]
}
列表中的每个项目都有大约 25-30 个属性(一些简单类型,而其他复杂数组作为嵌套对象)
我必须从 api 端点读取对象并仅提取“ID”和“描述”,但它们需要按“价格”排序,例如 int
我应该按什么顺序进行这个数据操作
- 我是否应该使用 json 对象,将其反序列化为仅具有这 2 个属性(我需要)的另一个对象,然后在“价格”上执行“asc”排序?
请注意,在我获得排序列表后,我必须将其转换回 json 列表,因为前端毕竟消耗了一个 json。
我不喜欢这种方法的是发生的序列化和反序列化循环
或
- 我首先对 json 对象执行排序(例如使用二进制/冒泡排序),然后使用该对象创建仅具有这 2 个属性的强类型(反序列化)对象,然后将其序列化回传递给前端
我不知道冒泡排序的性能如何,以及我是否会在处理大量数据时获得任何性能提升。
我还需要记住,此实现可以考虑其他属性,例如“availabilitydate”,因为在以后,此前端可能会添加一个过滤器,例如“availabilitdate”asc
非常感谢任何帮助
谢谢
【问题讨论】:
标签: json sorting c#-4.0 serialization deserialization