动态类型和匿名类型在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 ...
随机推荐
- suse安装gcc,升级到4.8.5
前面这些是挂载iso,如果iso可以使用,就不需要下面几步. cd /etc/zypp/repos.d mkdir iso chmod -R 777 iso mount -o loop /media/ ...
- client / server端用户的登录
# 客户端 import socket import hashlib import json import os import struct sk = socket.socket() # 实例化 sk ...
- Labyrinth(记忆化BFS)
Labyrinth http://codeforces.com/problemset/problem/1064/D time limit per test 2 seconds memory limit ...
- 常用修图工具的一些使用技巧及问题解决方法——ai
一.ai如何修改画布大小 一. ai如何修改画布大小: 1. 左上角菜单中的文件——文档设置(也可以直接点菜单栏下边的控制栏中的文档设置) 2. 文档设置界面中,点击右上角“编辑画板“ 3. 此时面板 ...
- [leetcode]158. Read N Characters Given Read4 II - Call multiple times 用Read4读取N个字符2 - 调用多次
The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actu ...
- 【每日更新】【SQL实用大杂烩】
11.分页1. select * from (select top 2 * from( select top 3 * from t_table order by field1) a order by ...
- 什么是RNA-Seq (RNA Sequencing)
什么是RNA-Seq (RNA Sequencing) 2011-07-14 ~ ADMIN 随着ome为词尾的各种组学的出现,转录组学已经成为了人们了解生物信息的一个重要组成部分.人们使用了许多办法 ...
- 为什么二代测序的原始数据中会出现Read重复现象?
为什么二代测序的原始数据中会出现Read重复现象? 要搞清楚这个read重复(duplicate)的问题,我想我们需要从NGS数据的产出过程说起,具体来说如下: 基因组DNA提取: DNA随机打断,最 ...
- 201621123008《Java程序设计》第七周学习总结
1. 本周学习总结 1.1 思维导图:Java图形界面总结 2.书面作业 1. GUI中的事件处理 1.1 写出事件处理模型中最重要的几个关键词. 监听,事件源,事件,注册. 1.2 任意编写事件处理 ...
- win10如何安装和创建 证书
.下载winsdksetup.exe .在 MMC 管理单元中查看证书 打开一个命令提示符窗口. 类型mmc然后按 ENTER 键. 请注意,若要查看本地计算机存储中的证书,您必须具有管理员角色. 上 ...