首页 > Windows开发 > 详细

动态类型和匿名类型在asp.net webapi中的应用

时间:2015-06-23 13:25:26      阅读:146      评论:0      收藏:0      [点我收藏+]

1、  动态类型用于webapi调用

假设需要调用一个webapi,webapi返回了一个json字符串。字符串如下:

{"ProductId":"AN002501","ProductName":"XX洗衣粉","Description":"","UnitPrice":9.9}

问:如何获得json字符串中的值?

常规的做法是:先构建一个类,然后再使用JsonConvert对它进行反序列化。示例如下:

(1)构建类

 1 public class Product
 2 {
 3 
 4         public string ProductId { get; set; }
 5 
 6         public string ProductName { get; set; }
 7 
 8         public string Description { get; set; }
 9 
10         public decimal UnitPrice { get; set; }
11 
12 }

(2)反序列化:

1 string jsonString = "{\"ProductId\":\"AN002501\",\"ProductName\":\"XX洗衣粉\",\"Description\":\"\",\"UnitPrice\":9.9}";
2 
3 dynamic product = JsonConvert.DeserializeObject<Product>(jsonString);

 

若是使用动态类型的话,则可以不需要构建一个类来承载序列化。示例如下:

1 dynamic obj = JsonConvert.DeserializeObject<dynamic>(jsonString);

 

2、  匿名类型用于webapi输出

假设需要输出以下的json字符串:{"Id":"AN002501","Price":9.9}。问:如何达成目的?

常规的做法是:先构建一个拥有Id和Price属性的类,然后再对它进行序列化后输出。示例如下:

(1)构建类

1 public class SimpleProduct
2 {
3         public string Id { get; set; }
4 
5         public decimal Price { get; set; }
6 }

(2)序列化后输出

public ActionResult Test1()
{
    return Json(new SimpleProduct { Id = "1333", Price = 9.9M }, JsonRequestBehavior.AllowGet);   
}

 

若使用匿名类型的话,则不需要构建一个类来承载序列化。示例如下:

public ActionResult Test2()
{
    return Json(new { Id = "1333", Price = 9.9M }, JsonRequestBehavior.AllowGet);
}

 

动态类型和匿名类型在asp.net webapi中的应用

原文:http://www.cnblogs.com/dehai/p/4595185.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!