2017-01-31 1 views
0

私はAPI呼び出しを行い、問題を解決する方法を学んでいます(私はJsonを非直列化しています)。現在のJSON配列([1,2,3]など)を型にデシリアライズできません。どうしたのですか?

私は、同じ問題について複数のソリューションを確認しましたが、運がありません。

これを設定した方法はありますか?

注:私はTwitter API(したがってツイートとツイートクラス)を使いたいと思っていますが、単純なダミーデータでGetリクエストをテストしています。

public class HomeController : Controller 
{ 
    Tweets model = null; 
    public ActionResult Index() 
    { 
     var client = new HttpClient(); 
     client.Timeout = TimeSpan.FromMinutes(30); 
     var task = 
      client.GetAsync(
      "http://jsonplaceholder.typicode.com/posts/") 
      .ContinueWith((taskwithresponse) => 
       { 
        var response = taskwithresponse.Result; 
        var readtask = response.Content.ReadAsAsync<Tweets>(); 
        readtask.Wait(); 
        model = readtask.Result; 
       }); 
     task.Wait(); 
     return View(model.results); 
    } 
} 

    public class Tweets 
{ 
    public Tweet[] results; 
} 
public class Tweet 
{ 
    [JsonProperty("body")] 
    public string UserName { get; set; } 
    [JsonProperty("title")] 
    public string TweetText { get; set; } 
} 
+2

どうしますか?例外はありますか?レスポンスは空ですか?どうしたの? –

+2

例のjson文字列を表示します。それから私達は助けることができる –

答えて

2

List<Tweet>をモデルとして使用してください。

public ActionResult Index2() 
{ 
    List<Tweet> model = null; 
    var client = new HttpClient(); 
    client.Timeout = TimeSpan.FromMinutes(30); 
    var task = 
     client.GetAsync(
     "http://jsonplaceholder.typicode.com/posts/") 
     .ContinueWith((taskwithresponse) => 
     { 
      var response = taskwithresponse.Result; 
      var readtask = response.Content.ReadAsAsync<List<Tweet>>(); 
      readtask.Wait(); 
      model = readtask.Result; 
     }); 
    task.Wait(); 
    return View(model); 
} 
関連する問題