解析ASP.NET中的JSON字符串

时间:2016-09-09 07:44:44

标签: c# asp.net json syntax

我主要研究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?
}

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

使用Newtonsoft Json.NET

JsonConvert.DeserializeObject<DataModel>(json);

答案 1 :(得分:1)

除非您想编写代表您正在POST的JSON的C#类(最安全的解决方案),否则您可以使用动态类型创建一个看起来像JSON的对象。然后,您可以执行this answer之类的操作来访问属性。

此解决方案不会为您提供类型安全性,DLR将在运行时解析动态对象的属性。

正如其他答案所提到的那样,使用Newtonsoft JSON可以让您的生活变得更轻松:

{{1}}