mam sekwencję par klucz/wartość z niestandardowym zamówieniu (nie przez klucz), że chcę wrócić:Jak zwrócić posortowaną słownika z ASP.NET Web API
public IHttpActionResult GetStuff() {
bla-bla-bla
.ToDictionary(x => x.Code, x => x.Desc);
}
produkuje następujące JSON:
Odpowiedź jest zawsze sortowana za pomocą klucza, ponieważ jak rozumiem, Dictionary<K, T>
nie gwarantuje konkretnego zamówienia. Gdybym zamiast zwróci listę sortowanych KeyValuePair<K, T>
Web API produkuje inny układ:
[
{ "Key": 3, "Value": "AAA"},
{ "Key": 8, "Value": "CCC"},
{ "Key": 1, "Value": "ZZZ"},
]
który nie chce z powodu dodatkowego ładunku. Jak więc zwrócić podobną do słownika sekwencję klucz/wartość sformatowaną jak w pierwszym przykładzie?
Czy to nieudokumentowana konwencja? Mam na myśli anonimowe obiekty o własnościach 'Key' /' Value'? Chociaż działa to w przypadku serializatora JSON.NET, nie dotyczy XML (podczas korzystania z negocjacji treści): 'InvalidOperationException' Typ ... AnonymousType4'2 ... nie może być serializowany. – UserControl
Zrobiłem kilka zmian. Możesz użyć ViewModel, aby dokonać serializacji. –