Как мы можем отсортировать строку запроса по имени ключа в C#
Я получил ответ на url-адрес
Как только я прочитаю ответ, я получу эту строку, как показано ниже
id=657ec95c439eb4a76e48c5ea7&amount=1¬ify_status=success¤cy=USD&time=20190403095815&reference=190403175800PTM03428¬ify_id=D0000036639-a6d98e5d0a08d3e8850f&fields=id%2Camount%2Cnotify_status%2Ccurrency%2Ctime%2Creference%2Cnotify_id&sign=997b961b0541fb64b4c31096bc059055
Мне нужно укоротить эту строку, как показано ниже
сумма=1&валюта=USD& fields=id%2Camount%2Cnotify_status%2Ccurrency%2Ctime%2Creference%2Cnotify_id&id=657ec95c439eb4a76e48c5ea7¬ify_id=D0000036639-a6d98e5d0a08d3e8850f ¬ify_status=success&reference=190403175800PTM03428&sign=997b961b0541fb64b4c31096bc059055&time=20190403095815
В принципе, мне нужны короткие ключи, и моя строка выглядит так: key1=value1&key2=value2&key3=value3
Ценю любую помощь
Что я уже пробовал:
string requestJson = "id=657ec95c439eb4a76e48c5ea7&amount=1¬ify_status=success¤cy=USD&time=20190403095815&reference=190403175800PTM03428¬ify_id=D0000036639-a6d98e5d0a08d3e8850f&fields=id%2Camount%2Cnotify_status%2Ccurrency%2Ctime%2Creference%2Cnotify_id&sign=997b961b0541fb64b4c31096bc059055"; var list = new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(requestJson); SortedDictionary<string, string> parameters = new SortedDictionary<string, string>(); foreach (var term in list) { if (term.Key == "sign") continue; parameters.Add(term.Key, term.Value); }
Mehdi Gholam
Почему?
Keith Barrow
JavaScriptSerializer.Метод Deserialize не собирается десериализовывать параметры запроса - он ожидает строку JSON. Решение OriginalGriff - это то, с чего я бы начал.
Кроме того, Мехди голам задает хороший вопрос - я не могу придумать веской причины, по которой вы хотели бы сделать это, кроме как в качестве упражнения. Это не значит, что нет веской причины, но хорошо задаться вопросом: "действительно ли я решаю правильную проблему".