2017-01-11 200 views
0

我將JSON數據存儲到類中。但是,我很難解決下面第二個JSON行,BadGuy。我無法正確存儲它的數據。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; } 
} 

如何我反序列化我JSON

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」類。查看更新的示例。如果它不起作用,那麼請說出你得到的錯誤。 –