每天学习一点点,成功增加一大步

.Net Core 笔记:自定义模型数组(List)到 JSON 的转换

C# zhanghui 1000℃

今天在学习研究 .net core 与 mysql 数据库之间的时候,遇到 select 查询出来的数据,要如何与程序中的数据模型对应,而且这自定义的模型如何组成一个 array list ,然后最后又怎么将这个 array list 转换成 webapi 友好的 json 格式返回,以前在 php、typeScript 或 java 都可以利用语言自带的函数或方法顺利的解决上述的问题。但到了 .net core 就摸不着头脑了,网上的方法都是基本上都写一大堆手动拼接代码的处理函数来解决,感觉实在是不方便,难道强大的 C# 没有自己简单处理这个问题的方法了吗?

不过找来找去较为简单处理这个问题的方法,就暂时先用着吧。

先来个简单处理这个例子的实例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using MySql.Data.MySqlClient;
using System.Collections;
using Microsoft.AspNetCore.Server.Kestrel.Internal.System.Collections.Sequences;
using System.Runtime.Serialization.Json;
using System.IO;
using System.Text;
namespace NetCode.Controllers
{
[Route("api/[controller]")]
public class ValuesController : Controller
{
[HttpPost]
public dynamic Post([FromBody]JObject value)
{
List<UserModel> um = new List<UserModel>();
Random random = new Random();
for (var i = 0; i < 10; i++)
{
UserModel item = new UserModel();
item.id = i;
item.name = "name" + i;
item.age = random.Next(10, 99);
item.createTime = DateTime.Now;
um.Add(item);
}
DataContractJsonSerializer json = new DataContractJsonSerializer(um.GetType());
string szJson = "";
//序列化
using (MemoryStream stream = new MemoryStream())
{
json.WriteObject(stream, um);
szJson = Encoding.UTF8.GetString(stream.ToArray());
}
return szJson;
}
}
public class UserModel
{
public int id { get; set; }
public string name { get; set; }
public int age { get; set; }
public dynamic createTime { get; set; }
}
}

看了上面的代码感觉有点不太爽。看中间的数据动态添加的代码:

for (var i = 0; i < 10; i++)
{
UserModel item = new UserModel();
item.id = i; item.name = "name" + i;
item.age = random.Next(10, 99);
item.createTime = DateTime.Now;
um.Add(item); 
}

这里能不能再简洁点,用一句话就能搞定。答案是当然可以了。

for (var i = 0; i < 10; i++)
{
um.Add(new UserModel()
{
id = i,
name = "name" + i,
age = random.Next(10, 99),
createTime = DateTime.Now
});
}

不过这种写法博主感觉还是没有前面学习过的 typeScript 语言的写法简洁,也可能是 C# 的特性吧(也有可能存在着更简洁的,没有被博主发现而已,以后发现了再补)。

前面写过了自定义模型最基本的数组列组合方法后,现在是进入升级篇那就是结合数据库搜索列表来实践,这也是必经之路。

那么具体怎么做可以看最近练习的【mysql的使用】这篇文章的内容

转载请注明:隨習筆記 » .Net Core 笔记:自定义模型数组(List)到 JSON 的转换