Самый простой способ анализа & ldquo; querystring & rdquo; отформатированные данные

Вы не можете ссылаться на сам документ в обновлении (пока). Вам нужно будет перебирать документы и обновлять каждый документ с помощью функции. См. этот ответ для примера, или этот для серверной стороны eval().

25
задан Tom Gullen 14 August 2012 в 16:41
поделиться

2 ответа

Вы можете сделать это с помощью linq следующим образом.

string query = "id=3123123&userId=44423&format=json";

Dictionary<string,string> dicQueryString = 
        query.Split('&')
             .ToDictionary(c => c.Split('=')[0],
                           c => Uri.UnescapeDataString(c.Split('=')[1]));

string userId = dicQueryString["userID"];

Редактировать

Если вы можете использовать HttpUtility.ParseQueryString , то это будет намного проще и не будет чувствительным к регистру, как в чехол LinQ.

17
ответ дан Adil 14 August 2012 в 16:41
поделиться

Если вы хотите избежать зависимости от System.Web, которая требуется для использования HttpUtility.ParseQueryString , вы можете использовать метод расширения Uri ParseQueryString из System.Net.Http.

Обратите внимание, что вы должны преобразовать тело ответа в действительное Uri, чтобы ParseQueryString работал.

Также обратите внимание, что в документе MSDN этот метод является методом расширения для класса Uri, поэтому вам необходимо обратиться к сборке System.Net.Http.Formatting (в System.Net.Http.Formatting.dll). Я попытался установить его с помощью пакета nuget с именем «System.Net.Http.Formatting», и он отлично работает.

string body = "value1=randomvalue1&value2=randomValue2";

// "http://localhost/query?" is added to the string "body" in order to create a valid Uri.
string urlBody = "http://localhost/query?" + body;
NameValueCollection coll = new Uri(urlBody).ParseQueryString();
4
ответ дан Qin Chao 14 August 2012 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: