我主要研究PHP,最近已经切换到ASP.NET,
解析JSON时,我可以简单地使用 - >得到这个领域,例如
foreach(json_decode($_POST['mandrill_events']) as $event) {
$event = $event->event;
$email_type = $event->msg->metadata->email_type;
}
但是,在ASP.NET中,没有动作,这是我的尝试代码
var post_data = Request.Form["mandrill_events"];
JavaScriptSerializer ser = new JavaScriptSerializer();
var post_data_json = ser.Deserialize<Dictionary<string, string>>(post_data);
foreach (var event_obj in post_data_json) {
//how to parse the event_obj?
}
非常感谢你的帮助。
答案 0 :(得分:2)
使用Newtonsoft Json.NET
JsonConvert.DeserializeObject<DataModel>(json);
答案 1 :(得分:1)
除非您想编写代表您正在POST的JSON的C#类(最安全的解决方案),否则您可以使用动态类型创建一个看起来像JSON的对象。然后,您可以执行this answer之类的操作来访问属性。
此解决方案不会为您提供类型安全性,DLR将在运行时解析动态对象的属性。
正如其他答案所提到的那样,使用Newtonsoft JSON可以让您的生活变得更轻松:
{{1}}