在C#4.0中解析JSON
有人能帮我把这个JSON解析成C#4.0中的一个对象吗。过去两天我一直在努力。在C#4.0中解析JSON,json,c#-4.0,Json,C# 4.0,有人能帮我把这个JSON解析成C#4.0中的一个对象吗。过去两天我一直在努力。 我有JSON.NET和其他几个人的建议,但都没有用 我认为最好给出JSON示例并征求您的建议 { "message-count":"1", "messages":[ {"to":"441234567890", "messageprice":"0.02900000", "status":"0", "messageid":"030000001DF
我有JSON.NET和其他几个人的建议,但都没有用 我认为最好给出JSON示例并征求您的建议
{
"message-count":"1",
"messages":[
{"to":"441234567890",
"messageprice":"0.02900000",
"status":"0",
"messageid":"030000001DFE2CB1",
"remainingbalance":"1.56500000",
"network":"23433"}
]
}
非常感谢,,
阿德里安
p、 如果你想使用github,这里有一些不错的代码 创建与json和调用具有相同结构的对象
JsonConvert.DeserializeObject<Entity>(json);
JsonConvert.DeserializeObject(json);
编辑。如果你想这样做,你必须使用JSON.NET。我将使用这个工具快速作弊并创建C类:(或刚刚发现)
然后我根据自己的喜好改变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; }
}
然后我可以使用JSON.NET将JSON转换为C#对象:
public void YourMethod(MessagesJSON json) {
var result = JsonConvert.DeserializeObject<MessagesJSON>(json);
}
如果您真的喜欢,也可以使用以下解决方案之一:
我自己更喜欢属性
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”Hi广告,我无法控制这一点。这是我从服务器上得到的。我已经设法解决了。我只是在使用JSON.Net时,类结构出错了。不过,似乎要花相当长的时间才能加载。为什么微软对JSON没有一个合理的介绍?“消息计数”:“1”@ADNow:为什么你建议不要在属性名中使用破折号?是因为C语言不允许它(因此需要类上的额外属性)?您不能使用点语法引用JavaScript中的连字符键,如data.message-count,您必须使用data[“message count”]。我也没有看到谷歌建议在他们的指南中使用破折号:嗨,广告,这正是我所做的。非常感谢,谢谢你。我就是这么做的。
{\"message_count\":1,\"messages\":[{\"to\":\"441234567890\",\"messageprice\":\"0.02900000\",\"status\":\"0\",\"messageid\":\"030000001DFE2CB1\",\"remainingbalance\":\"1.56500000\",\"network\":\"23433\"}]}
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\"}]}"