2016-11-04 14 views
-4

C#を使用してこのレスポンスを解析するにはどうすればよいですか?C#でこのhttpレスポンスを解析する方法

[ 
    { 
     "date":"2016-10-01", 
     "stats":[ 
     { 
      "type":"subuser", 
      "name":"[email protected]", 
      "metrics":{ 
       "blocks":23, 
       "bounce_drops":164, 
       "bounces":19, 
       "clicks":0, 
       "deferred":412, 
       "delivered":3435, 
       "invalid_emails":27, 
       "opens":0, 
       "processed":3481, 
       "requests":3675, 
       "spam_report_drops":3, 
       "spam_reports":0, 
       "unique_clicks":0, 
       "unique_opens":0, 
       "unsubscribe_drops":0, 
       "unsubscribes":0 
      } 
     } 
     ] 
    }, 
    { 
     "date":"2016-10-02", 
     "stats":[ 
     { 
      "type":"subuser", 
      "name":"[email protected]", 
      "metrics":{ 
       "blocks":0, 
       "bounce_drops":0, 
       "bounces":0, 
       "clicks":0, 
       "deferred":95, 
       "delivered":0, 
       "invalid_emails":0, 
       "opens":0, 
       "processed":0, 
       "requests":0, 
       "spam_report_drops":0, 
       "spam_reports":0, 
       "unique_clicks":0, 
       "unique_opens":0, 
       "unsubscribe_drops":0, 
       "unsubscribes":0 
      } 
     } 
     ] 
    } 
] 
+0

JSONを格納していないため.netはあなたの友人です – pm100

+0

@ pm100私はjson.netの解析を探してみました失敗しました:( –

+2

あなたはjson.netを見つけることができないか、それを使用する方法を知らないのですか?それはここにありますhttp://www.newtonsoft.com/json – pm100

答えて

3

として以下dynamicにそれをデシリアライズまたはマッチングクラス構造を作成し、それにそれをデシリアライズJsonConvertを使用します。

using Newtonsoft.Json; 
..... 

string json = File.ReadAllText("data.txt"); 
var deserializedData = JsonConvert.DeserializeObject<dynamic>(json); 

のようになりますjson2csharpあなたのクラスを使用する:

public class Metrics 
{ 
    public int blocks { get; set; } 
    public int bounce_drops { get; set; } 
    public int bounces { get; set; } 
    public int clicks { get; set; } 
    public int deferred { get; set; } 
    public int delivered { get; set; } 
    public int invalid_emails { get; set; } 
    public int opens { get; set; } 
    public int processed { get; set; } 
    public int requests { get; set; } 
    public int spam_report_drops { get; set; } 
    public int spam_reports { get; set; } 
    public int unique_clicks { get; set; } 
    public int unique_opens { get; set; } 
    public int unsubscribe_drops { get; set; } 
    public int unsubscribes { get; set; } 
} 

public class Stat 
{ 
    public string type { get; set; } 
    public string name { get; set; } 
    public Metrics metrics { get; set; } 
} 

public class RootObject 
{ 
    public string date { get; set; } 
    public List<Stat> stats { get; set; } 
} 

これらの生成されたクラス

を向上させることができる - の例はstringdateしかしDateTime

string json = File.ReadAllText("data.txt"); 
RootObject deserializedData = JsonConvert.DeserializeObject<RootObject>(json); 
+0

[OK]をクリックして、どのように変数をtextbox.textに追加しますか? –

+0

@CarlR - 私はあなたが意味することを理解していませんでした –

+0

まあ、私はテキストボックスに返されたカウントのカウントを取得しようとしています。例えば、textbox1.text = deserializedData.delivered;しかし、私は応答データから配信された両方の日付を追加したいと思います。 –

関連する問題