0

だからここで何が起こっているのですか:私はこのjson文字列を取得しました(APIを使用してimgurに画像をアップロードした後):

{
    "data": {
        "id": "123456",
        "title": null,
        "description": null,
        "datetime": 1378731002,
        "type": "image/png",
        "animated": false,
        "width": 1600,
        "height": 900,
        "size": 170505,
        "views": 0,
        "bandwidth": 0,
        "favorite": false,
        "nsfw": null,
        "section": null,
        "deletehash": "qZPqgs7J1jddVdo",
        "link": "http://i.imgur.com/123456.png"
    },
    "success": true,
    "status": 200
}

次のように JsonConvert.DeserializeObject を使用して Dictionary に逆シリアル化しようとしています。

richTextBox1.Text = json;
Dictionary<string, string> dic = JsonConvert.DeserializeObject<Dictionary<string, string>>( json );
MessageBox.Show( dic["success"].ToString() );

問題は、RichTextBox で json 文字列を確認できますが、JsonConvert の後の MessageBox が表示されないことです...ここで何が欠けていますか?

実際、JsonCOnvert の後にブレークポイントを配置することもできますが、それはトリガーされません。何が起こっていますか?

ありがとうございました。

4

2 に答える 2

0

Dictionary<string, object>値が常に文字列であるとは限らないため、a を使用する必要があるかもしれません。json デシリアライザーを呼び出すと、例外があるようです。

おそらく、例外をキャッチするために、コードを「try-catch」ブロックで囲むことができます。

于 2013-09-09T13:05:34.513 に答える