任何人都可以帮我将此 JSON 解析为 C# 4.0 中的对象吗?这两天我一直在努力。
我有 JSON.NET 和其他几个人的建议,但没有效果。
我认为最好只提供 JSON 示例并征求您的建议。
{
"message-count":"1",
"messages":[
{"to":"441234567890",
"messageprice":"0.02900000",
"status":"0",
"messageid":"030000001DFE2CB1",
"remainingbalance":"1.56500000",
"network":"23433"}
]
}
非常感谢, 阿德里安
p.s 如果你想使用 github,这里有一些不错的代码。 https://github.com/lukesampson/HastyAPI.Nexmo
最佳答案
我将使用此工具快速作弊并创建 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)双消息价格{获取;放; }
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,请使用以下解决方案之一:
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 - 在 C# 4.0 中解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945634/