【发布时间】:2015-12-11 21:41:41
【问题描述】:
我通过调用 GoToWebinar 的 API 获得了一些类似于此的 JSON:
[
{
"answer":"The Answer for Question 1",
"question":"1. This is the Question?"
},
{
"answer":"The Answer for Question 2",
"question":"2. This is the Question?"
},
{
"answer":"The Answer for Question 7",
"question":"7. This is the Question?"
},
{
"answer":"The Answer for Question 5",
"question":"5. This is the Question?"
},
{
"answer":"The Answer for Question 3",
"question":"3. This is the Question?"
},
{
"answer":"The Answer for Question 8",
"question":"8. This is the Question?"
},
{
"answer":"The Answer for Question 4",
"question":"4. This is the Question?"
},
{
"answer":"The Answer for Question 6",
"question":"6. This is the Question?"
}
]
它将使用 JSON.Net 序列化以填充这些类:
public class WebinarQuestions {
public List<WebinarQuestion> questions { get; set; }
}
public class WebinarQuestion {
public string answer { get; set; }
public string question { get; set; }
}
我希望 WebinarQuestions.questions 井井有条。有没有办法在不遍历 JSON 的情况下做到这一点?
我不知道他们为什么按这个顺序过来,并且对他们没有任何控制权。
【问题讨论】:
-
在反序列化 JSON 后仅在内存中对它们进行排序对性能有何影响?
-
他们目前的顺序是什么,因为我们知道他们的顺序是正确的。而且因为它是一个列表
,你可以不排序列表吗? -
在您拥有对象后重新排序。您不想解析 JSON 来更改排序。我什至不确定反序列化时是否可以保证订购。
-
我知道 JSON 中的顺序是错误的,他无法控制它,他希望问题按数字排序。我会假设一个基本的排序调用使用问题值进行排序。
-
先反序列化再排序。当然,您将不得不解析
question字段来确定它们应该是什么顺序,这非常难看。实际上,再想一想,因为它们以数字开头,只要少于9,您就可以对字符串进行排序,但这很hacky。