我将使用此工具快速作弊并创建 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\"}]}
或者如果您真的喜欢 CamelCasing,请使用以下解决方案之一:
仅当 PropertyName 未在 Json.Net 中明确设置时才使用 CamelCase?
使用 JSON.Net 进行 JObject 和 CamelCase 转换
我自己更喜欢属性
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# 属性名称: