2017-01-11 25 views
0

私はJSONデータをクラスに格納しています。しかし、私は、BadGuyの下の2番目のJSON行を解決するのに苦労しています。私はそれが正しくデータを格納することはできません。JSON解析の問題

私は JSONをデシリアライズ方法
{ 
    \"First\":{\"FirstBool\":1, \"aString\":\"hello\"}, 
    \"BadGuy\":\"BadGuy says hello\" //<--- this one, how do I tackle this in code below? 
} 

public class First 
{ 
    [JsonProperty("FirstBool")] 
    public int FirstBool { get; set; } 

    [JsonProperty("aString")] 
    public string aString { get; set; } 
}  

public class BadGuy //my poorly attempt 
{ 
    [JsonProperty("BadGuy")] 
    public string BadGuy { get; set; } 
} 


public class ClsResult 
{ 
    [JsonProperty("First")] 
    public First First { get; set; }  

    [JsonProperty("BadGuy")] // another poorly attempt 
    public BadGuy BadGuy { get; set; } 
} 

var ser = JsonConvert.DeserializeObject<ClsResult>(myJSON); 
+2

「BadGuy」タイプはありません。「BadGuy」プロパティは「string」と入力してください。 – Sinatr

+0

@Sinatr BadGuyクラスの '[JsonProperty(" string ")]'のような意味ですか? – user7399041

+0

いいえ、@AndySkirrow答えを参照してください。 – Sinatr

答えて

5

は、あなたはこれを試したことがありますか? BadGuyは文字列なので、そのように定義する必要があります。

public class First 
{ 
    [JsonProperty("FirstBool")] 
    public int FirstBool { get; set; } 

    [JsonProperty("aString")] 
    public string aString { get; set; } 
}  

public class ClsResult 
{ 
    [JsonProperty("First")] 
    public First First { get; set; }  

    [JsonProperty("BadGuy")] 
    public string BadGuy { get; set; } 
} 

public static class Program 
{ 
    public static void Main() 
    { 
     string json = GetJson(); 
     ClsResult result = JsonConvert.DeserializeObject<ClsResult>(myJSON); 
     Console.WriteLine("Bad Guy == " + result.BadGuy); 
    } 
} 
+0

さて、 'var test = new ClsResult();' - > 'test.BadGuy'で' BadGuy'文字列にアクセスしますか?編集:また、 'BadGuy'クラスはもはや役に立たないので、そのクラスコードを削除すべきですか? – user7399041

+0

はい、BadGuyクラスを削除できます。更新例を参照してください。それがうまくいかない場合は、どんなエラーが発生しているのかを教えてください。 –