0

JSON.NETを使用してTwitterからのJSON応答を解析する関数をvb.netで作成しました。テキスト、ソース、およびcreated_atを解析するのはうまくいっています。そして、私は実際にこのコードをプログラムで使用しています。しかし、たとえば場所を解析しようとすると、空の文字列が得られます。配列が必要かもしれないことを理解しています。しかし、なぜテキスト、ソース、およびcreated_atの配列が必要ないのですか?また、配列をどのように宣言すればよいのでしょうか?どの値が必要なのでしょうか?

私のコード

  Private Sub ParseJson(ByVal Json As String)


    Dim o As JObject = JObject.Parse(Json)


    Dim tweet As String = o("text")
    Dim source As String = o("source")
    Dim created_at As String = o("created_at")


'See below, I get an empty string here

  Dim location As String = o("location")



End Sub
4

1 に答える 1

1

オンラインでの議論によると、位置情報を提供する方法はさまざまです。たとえば、テスト目的で提供されているサンプル クエリには、次の JSON フラグメントが含まれています。

geo: {
    type: "Point",
    coordinates: [
        47.73491243,
        -122.33668846
    ]
},
coordinates: {
    type: "Point",
    coordinates: [
        -122.33668846,
        47.73491243
    ]
}

したがって、ネストされたオブジェクトになるかのどちらかをlocation読み取る代わりに、どちらかを読み取ることができます。ただし、どの有効なs があるかはわかりません。geocoordinatestype

情報は、さらに複雑なオブジェクトであるとして提供されます。place

place: {
    id: "ecb63eb9d9d83b31",
    url: "http://api.twitter.com/1/geo/id/ecb63eb9d9d83b31.json",
    place_type: "city",
    name: "Shoreline",
    full_name: "Shoreline, WA",
    country_code: "US",
    country: "United States",
    bounding_box: {
        type: "Polygon",
        coordinates: [ … ]
    }
}

したがって、を読み取るにはplace、次を使用できます。

String.Format("{0} ({1})", o("place")("full_name"), o("place")("country_code"))

戻るだろう

Shoreline, WA (US)

これらのプロパティは必ずしも提供されているわけではないので、堅牢にしたい場合は、必要な情報が得られるプロパティが見つかるまで、すべてのプロパティの存在をテストする必要があることを理解しています。

于 2013-03-11T16:33:56.503 に答える