使用动态类型dynamic让你的省了很多临时类

时间:2023-03-09 22:47:54
使用动态类型dynamic让你的省了很多临时类

客户端与服务端的数据交互使用的数据格式是json格式,为了使客户端与服务端有类对应关系,进行序列化,所以总要定义一些类,使用动态类型dynamic可以不必要定义那么多类。

测试代码:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace dynamic.Controllers
{
/// <summary>
/// 测试Dynamic
/// </summary>
public class DynamicDemoController : Controller
{
//
// GET: /DynamicTest/ public ActionResult Index()
{
return View();
} /// <summary>
/// 测试使用dynamic将客户端的传过来的json反序列化
/// </summary>
/// <param name="jsonValue"></param>
/// <returns></returns>
public ActionResult TestDynamic(string jsonValue)
{
dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonValue); //反序列化
string str = null;
int age;
foreach (dynamic item in obj) //遍历这个动态集合
{
str = item.UserName; //获取用户名称
age = item.Age; //获取用户年龄
}
string result = Newtonsoft.Json.JsonConvert.SerializeObject(obj); //序列化
return Content(result);
} }
}

发送请求的代码:

 @{
ViewBag.Title = "Index";
}
<h2>
测试使用dynamic解析json字符串</h2>
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script>
$(function () {
var arry = [
//{ UserName: "1_测试使用dynamic解析json字符串", Age: "23" },
{ UserName: "2_测试使用dynamic解析json字符串", Age: "20" }
];
$.ajax({
type: 'GET',
url: "/DynamicDemo/TestDynamic",
data: { jsonValue: JSON.stringify(arry) },
success: function (data) {
alert(data);
console.log(data);
},
dataType: "json" });
});
</script>

发送请求的结果:

使用动态类型dynamic让你的省了很多临时类

相关文章