Как я могу легко разобрать возвращенный объект JSON только для информации, которая мне нужна? - PullRequest
0 голосов
/ 18 ноября 2010

Используя следующий фрагмент кода, я могу получить 4 результата из API веб-поиска Google. Я знаю, что использую устаревший API, но здесь я только что-то тестирую и буду использовать новый API пользовательского поиска, когда буду более знаком с ним. Однако сейчас мне было интересно, как я могу разобрать возвращаемый результат для "unescapedUrl", который есть в результате? По сути, я хочу получить все четыре значения «unescapedUrl» в возвращенном JSON.
Вот мой код:

var searchTerm = "pizza boxes";
        using (var web = new WebClient())
        {
            web.Headers.Add("Referrer", "http://localhost:49360/");
            var result = web.DownloadString(String.Format(
                   "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q={0}&rsz=4",
                   searchTerm));
            Console.WriteLine(result);
        }

Я не хочу использовать JSON.Net с этим (пока), если только мне это не нужно. Есть идеи?

Спасибо!

1 Ответ

1 голос
/ 18 ноября 2010

Вам нужно создать тип, но вы уже подумали об использовании JavaScriptSerializer из System.Web.Extensions.dll?

Не могу сказать, что знаю API Googleхорошо, но если возвращен простой пакет свойств JSON, вы можете получить что-то простое:

System.Web.Script.Serialization.JavaScriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer();

System.Collections.Generic.Dictionary<string, object> dict = ser.DeserializeObject(@"{""key"":""value""}") as System.Collections.Generic.Dictionary<string, object>;

Console.WriteLine(dict["key"].ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...