我會欺騙和快速創建C#類中使用此工具:http://json2csharp.com/(或剛發現http://jsonclassgenerator.codeplex.com/)
然後我改變C#類我喜歡的
public class MessagesJSON
{
public int MessageCount { get; set; }
public List<Message> Messages { get; set; }
}
public class Message
{
public string To { get; set; }
public double MessagePrice { get; set; }
public int Status { get; set; }
public string MessageId { get; set; }
public double RemainingBalance { get; set; }
public string Network { get; set; }
}
MessagesJSON只是我所做的一個名稱,代表您傳遞給C#的JSON對象。
我從客戶端傳遞JSON字符串,例如
{\"MessageCount\":1,\"Messages\":[{\"To\":\"441234567890\",\"MessagePrice\":0.029,\"Status\":0,\"MessageId\":\"030000001DFE2CB1\",\"RemainingBalance\":1.565,\"Network\":\"23433\"}]
那麼我可以用JSON.NET到JSON轉換爲C#對象:
public void YourMethod(MessagesJSON json) {
var result = JsonConvert.DeserializeObject<MessagesJSON>(json);
}
這裏的結果:
當心資本。
如果您只想使用小寫JSON密鑰,請將C#類改爲小寫,例如,public double messageprice {get;組; }
C#類:
public class MessagesJSON
{
public int message_count { get; set; }
public List<Message> messages { get; set; }
}
public class Message
{
public string to { get; set; }
public string messageprice { get; set; }
public string status { get; set; }
public string messageid { get; set; }
public string remainingbalance { get; set; }
public string network { get; set; }
}
這是接近你的JSON,只要你想:
{\"message_count\":1,\"messages\":[{\"to\":\"441234567890\",\"messageprice\":\"0.02900000\",\"status\":\"0\",\"messageid\":\"030000001DFE2CB1\",\"remainingbalance\":\"1.56500000\",\"network\":\"23433\"}]}
,或者如果你真的喜歡駝峯規則使用這些解決方案之一:
CamelCase only if PropertyName not explicitly set in Json.Net?
JObject & CamelCase conversion with JSON.Net
我自己喜歡的屬性
public class Message
{
[JsonProperty("to")]
public string To { get; set; }
[JsonProperty("messageprice")]
public string MessagePrice { get; set; }
[JsonProperty("status")]
public string Status { get; set; }
[JsonProperty("messageid")]
public string MessageId { get; set; }
[JsonProperty("remainingbalance")]
public string RemainingBalance { get; set; }
[JsonProperty("network")]
public string Network { get; set; }
}
通過你的字符串:
"{\"message_count\":1,\"messages\":[{\"to\":\"441234567890\",\"messageprice\":\"0.02900000\",\"status\":\"0\",\"messageid\":\"030000001DFE2CB1\",\"remainingbalance\":\"1.56500000\",\"network\":\"23433\"}]}"
,但得到漂亮的C#屬性名稱:
首先,我建議避免使用JSON鍵中的破折號:「message-count」會導致額外的工作。使用「message_count」 – AFD
嗨,AD, 我無法控制這一點。這是我從服務器獲得的。 我已經設法整理出來。使用JSON.Net時,我的類結構錯誤。這似乎需要很長時間才能加載。 爲什麼Microsoft沒有合理的JSON介紹? – Welshboy
「message-count」:「1」? – AFD