「Why you should use F#」のチャンネル9のビデオを見ていて、データをWikipediaから簡単に取り出せるようになったことに感心しました。彼が入力した通り例えば、彼はデータを見つけるの当て推量を取った最後の行にインテリセンスを持っていた、博士は誰の異なる外観を記載されている次のコード...F#JsonProviderのURLからJSONを読み込むには
[<Literal>]
let url = @"https://en.wikipedia.org/wiki/Doctor_Who"
type DoctorWhoData = HtmlProvider<url>
let data = DoctorWhoData.GetSample()
let app = data.Tables.``Changes of appearance``.Rows
を示しました。
最近Google Maps APIからデータを取得する必要がありました。たとえば、以下のURLは、英国の郵便番号SW1A 1AA(場合バッキンガム宮殿いずれかが興味を持っている!)のためのデータを引き出し...データだけでJSONであることを考えると
http://maps.google.com/maps/api/geocode/json?address=sw1a+1aa+uk
、私はそれが平等であるべきと思いましたF#を使用して情報を引き出すのは簡単です。しかし、私は緯度と経度を取得しようとして立ち往生した。
私は、次の...
type GoogleData = JsonProvider<"http://maps.google.com/maps/api/geocode/json?address=sw1a+1aa+uk">
で始まった...しかし、その後データを抽出しようとして捕まってしまいました。 jsonには、1つのエントリを持つ配列が含まれています。それには、ノードが含まれています。このノードには、2つの値を保持するノードlocation
が含まれています。擬似コードでは、このようなことを期待していたでしょう...
let lat = GoogleData.GetSample().[0].geometry.location.lat
...しかし、これはうまくいきませんでした。私はGetSample()を使わずに試しましたが、それ以上は得られませんでした。インテリセンスは私にJsonとまったくマッチしないようなものを見せてくれました...
私はどこに間違っているのかアドバイスできますか?データを見つけるにはどうすればいいですか?さらにポイントとして、私はIntellisenseにどのように手伝ってもらうのですか?私はC#でこれを行うことができましたが、動的オブジェクトを使用する必要があったため、Intellisenseには届かなかったので、非常にヒットアンドミスでした。そのビデオで見たものに基づいて、ここでIntellisenseを入手したいと考えていました。
感謝をそのために、私はその地位もトップレベルにあったとは思わなかった! 'let(lat、lng)= ???'のように、行全体を2回呼び出す以外に、緯度と経度の両方を得るためのきれいな方法がありますか? –
あなたはヘルパー関数 'let ll2tp(ll:GoogleData.Northeast)=(ll.Lat、ll.Lng)'を定義し、let(lat、lng)= honley.Results。[0] .Geometry.Location |> ll2tp' – DaveShaw
ありがとうございます。私が実際にそうすることで多くを得るかどうかはわかりませんが、知る価値があります。助けてくれてありがとう。 –