2

C# および Visual Studio 2010 (Windows フォーム プロジェクト)、InstaSharp および Newtonsoft.Json ライブラリを使用します。

特定のハッシュタグを要求したときに、 Endpoint Instagram APIによって返された JSON 文字列から画像の URLを取得したいと考えています。

これまでのところ、JSON 文字列を取得できます。

例を使用してNewtonsoft.Jsonを使用してオブジェクトを逆シリアル化しようとしていますが、オブジェクトの JSON 文字列表現を正しく理解していない可能性があります。

以下は、ドキュメントresponseの API 呼び出しから取得した単純化されたサンプルです。ソースはこちらtags/tag-name/media/recent

{
    "data": [{
        "type": "image",
        "filter": "Earlybird",
        "tags": ["snow"],
        "comments": {
        }
        "caption": {
        },
        "likes": {
        },
        "created_time": "1296703536",
        "images": {
            "low_resolution": {
                "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_6.jpg",
                "width": 306,
                "height": 306
            },
            "thumbnail": {
                "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_5.jpg",
                "width": 150,
                "height": 150
            },
            "standard_resolution": {
                "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_7.jpg",
                "width": 612,
                "height": 612
            }
        },
        "id": "22699663",
        "location": null
    },
    ...
    ]
}

standard_resolutionその部分で具体的に取得したいimages

これは私が現在持っている適切なコードです。

//Create the Client Configuration object using Instasharp
var config = new InstaSharp.Endpoints.Tags.Unauthenticated(config);

//Get the recent pictures of a particular hashtag (tagName)
var pictures = config.Recent(tagName);

//Deserialize the object to get the "images" part
var pictureResultObject = JsonConvert.DeserializeObject<dynamic>(pictureResult.Json);
            consoleTextBox.Text = pictureResult.Json;
            var imageUrl = pictureResultObject.Data.Images;
            Console.WriteLine(imageUrl);

エラーが発生します:Additional information: Cannot perform runtime binding on a null reference

imageUrlデバッグ時に実際に null であるため、正しい方法でアクセスしていないことを示しています。

Newtonsoft.Jsonを使用して、この JSON 文字列のさまざまな部分にアクセスする方法を誰でも説明できますか?

4

2 に答える 2

5

Newtonsoft.Jsonを使用 する

dynamic dyn = JsonConvert.DeserializeObject(json);
foreach (var data in dyn.data)
{
    Console.WriteLine("{0} - {1}",
            data.filter,
            data.images.standard_resolution.url);
}
于 2012-12-05T18:39:01.033 に答える
1

JSON文字列を逆シリアル化し、データテーブルを返す.net用のプラグインを作成しました。まだ開発中ですが、役立つかどうかを確認してください。Github の Instagram.NET

于 2013-07-30T14:27:22.647 に答える