2010-11-18 3 views
0

次のコードスニペットを使用すると、Google Web Search APIから4つの結果が得られます。私は廃止予定のAPIを使用していることを知っていますが、私はここで何かをテストしており、私がそれに精通しているときは新しいカスタム検索APIを使用します。今のところ、私は結果にある "unescapedUrl"の返された結果をどのように解析できるのだろうかと思っていましたか?基本的に、返されるJSONの4つの "unescapedUrl"値をすべて取得したいと思います。私は、私は絶対に持っていない限り(今のところ)これでJSON.Netを使用しない返された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); 
     } 


はここに私のコードです。何か案は?

ありがとうございます!

+0

痛みの世界では、JSON.NetのようなJSONライブラリを絶対に使用する必要があります。とにかくそれを避けるためにあなたはどうしてそんなに決心していますか? –

+0

私はそれを避ける大きな理由はありません。私はちょうどそれをダウンロードして、それをVisual Studioで動かす方法を理解しようとする必要はありませんでした。私はVSにはあまり熟練していないので、新しいJSON.Netライブラリへの参照を追加しようとすると、おそらく何か面倒なことに終わるでしょう。もちろん、それが私がしなければならないことなら、すぐにそれをやる方法を研究し始めるでしょう。返されたデータを逆シリアル化(?)し、それをループしてすべてのunescapedUrl値を取得する方法があることを期待していました。 – Kevin

答えて

1

タイプを作成する必要がありますが、System.Web.Extensions.dllのJavaScriptSerializerを使用することを考えましたか?

私はよく、GoogleのAPIを知っていると言うことはできませんが、それが返される単純な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()); 
+0

実際、私はそれを考慮していません。主に私のC#クラス(ライブラリの名前空間?)に慣れていないからです。私は今それをチェックし、それが私を助けるかどうかを見ます。ありがとう! – Kevin

+0

助けてくれるコードがいくつか追加されました – Laramie

+0

私はあなたが正しい道に辿り着いたと思います、ララミー。私は別のサイトでいくつかのコードを読んでいましたが、JavaScriptSerializerを使って投稿したものと非常に似ています。私はもう少し掘り下げて私が思いつくことができるものを見てみましょうが、あなたが私が解決策を見つけるのを手伝ったと思います。ありがとう! – Kevin

関連する問題