动态类型和匿名类型在asp.net webapi中的应用
1、 动态类型用于webapi调用
假设需要调用一个webapi,webapi返回了一个json字符串。字符串如下:
{"ProductId":"AN002501","ProductName":"XX洗衣粉","Description":"","UnitPrice":9.9}
问:如何获得json字符串中的值?
常规的做法是:先构建一个类,然后再使用JsonConvert对它进行反序列化。示例如下:
(1)构建类
public class Product
{ public string ProductId { get; set; } public string ProductName { get; set; } public string Description { get; set; } public decimal UnitPrice { get; set; } }
(2)反序列化:
string jsonString = "{\"ProductId\":\"AN002501\",\"ProductName\":\"XX洗衣粉\",\"Description\":\"\",\"UnitPrice\":9.9}";
dynamic product = JsonConvert.DeserializeObject<Product>(jsonString);
若是使用动态类型的话,则可以不需要构建一个类来承载序列化。示例如下:
dynamic obj = JsonConvert.DeserializeObject<dynamic>(jsonString);
2、 匿名类型用于webapi输出
假设需要输出以下的json字符串:{"Id":"AN002501","Price":9.9}。问:如何达成目的?
常规的做法是:先构建一个拥有Id和Price属性的类,然后再对它进行序列化后输出。示例如下:
(1)构建类
public class SimpleProduct
{
public string Id { get; set; } public decimal Price { get; set; }
}
(2)序列化后输出
public ActionResult Test1()
{
return Json(new SimpleProduct { Id = "", Price = 9.9M }, JsonRequestBehavior.AllowGet);
}
若使用匿名类型的话,则不需要构建一个类来承载序列化。示例如下:
public ActionResult Test2()
{
return Json(new { Id = "", Price = 9.9M }, JsonRequestBehavior.AllowGet);
}
动态类型和匿名类型在asp.net webapi中的应用的更多相关文章
- 关于ASP.NET WebAPI中HTTP模型的相关思考
对于.NET的分布式应用开发,可以供我们选择的技术和框架比较多,例如webservice,.net remoting,MSMQ,WCF等等技术.对于这些技术很多人都不会陌生,即时没有深入的了解,但是肯 ...
- C#的隐式类型、匿名类型、自动属性、初始化器
1.隐式类型 1)源起 在隐式类型出现之前,我们声明一个变量时,需要为它指定相应的类型,甚至在foreach一个集合的时候,也要为遍历的集合元素,指定变量的类型,隐式类型出现后,程序员就不用再做这个工 ...
- 在asp.net WebAPI 中 使用Forms认证和ModelValidata(模型验证)
一.Forms认证 1.在webapi项目中启用Forms认证 Why:为什么要在WebAPI中使用Forms认证?因为其它项目使用的是Forms认证. What:什么是Forms认证?它在WebAP ...
- [翻译] ASP.NET WebAPI 中的异常处理
原文链接:https://docs.microsoft.com/en-us/aspnet/web-api/overview/error-handling/exception-handling 本文介绍 ...
- ASP.NET WebApi 中使用swagger 构建在线帮助文档
1 在Visual Studio 中创建一个Asp.NET WebApi 项目,项目名:Com.App.SysApi(本例创建的是 .net 4.5 框架程序) 2 打开Nuget 包管理软件,查 ...
- Asp.Net WebAPI中Filter过滤器的使用以及执行顺序
转发自:http://www.cnblogs.com/UliiAn/p/5402146.html 在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行 ...
- 在ASP.NET WebAPI 中使用缓存【Redis】
初步看了下CacheCow与OutputCache,感觉还是CacheOutput比较符合自己的要求,使用也很简单 PM>Install-Package Strathweb.CacheOutpu ...
- Asp.Net WebAPI 中Cookie 获取操作方式
1. /// <summary> /// 获取上下文中的cookie /// </summary> /// <returns></returns> [H ...
- [转]在ASP.NET WebAPI 中使用缓存【Redis】
初步看了下CacheCow与OutputCache,感觉还是CacheOutput比较符合自己的要求,使用也很简单 PM>Install-Package Strathweb.CacheOutpu ...
随机推荐
- intellij idea 的常见配置
1.视图配置 配置好后如下图: 2.修改字体大小 3.编码修改 4.行号显示 5.控制台字体大小调整 File->Settings->Editor->Colors & F ...
- Nexus 安装 使用说明
1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部 ...
- Mybatis中传入时间值
<if test="search_content2 != null and search_content2 != ''"> AND add_time <![CDA ...
- vs2010+Aspx进行sharepoint2010工作流开发(3) 资料整理
http://www.cnblogs.com/janet/archive/2010/04/24/1719315.html http://www.cnblogs.com/poissonnotes/arc ...
- tomcat发布webservice
编写后台代码: package test; import javax.jws.WebParam; import javax.jws.WebService; @WebService public cla ...
- Majority Element(ARRAY-BINARY SEARCH)
QUESTION Given an array of size n, find the majority element. The majority element is the element th ...
- python之函数(function)
#今天来学习一下函数,function# 定义一个函数的时候,函数不会被执行,只有调用函数,函数才会执行## 定义函数# # 1.def是创建函数的关键字,创建函数# # 2.函数名# # 3.()# ...
- swift 设置图片动画组 iOS11之前 默认图片 设置不成功
在iOS 11 上, 1.先执行动画组 在设置图片执行帧动画,2.先设置图片在设置帧动画,执行帧动画 没有任何问题 在iOS 10和iOS9上,必须 执行 方法二(先设置图片在设置帧动画,执行帧动画 ...
- [udemy]WebDevelopment_HTML5
Build Your First Website 装一个subline text HTML default rule tags with opening and closing <!DOCTY ...
- Spring框架之log日志的使用
1.Spring框架也需要引入日志相关的jar包 * 在spring-framework-3.0.2.RELEASE-dependencies/org.apache.commons/com.sprin ...