博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用JsonConvert.SerializeObject()实现类对象的json化
阅读量:5166 次
发布时间:2019-06-13

本文共 2661 字,大约阅读时间需要 8 分钟。

       现阶段的项目是采用前后端分离的思想,前端使用的是Angular.JS,后端使用ABP框架,在后端我们通过WebAPI技术来向前端提供json数据。以前是通过MVC来写前端的代码,感觉后端有点在控制前端的节奏,一些少量的后端代码还是需要在HTML页面中写的,这次采用的这种模式,前端不需要写一点后端的C#代码,只负责写自己页面,至于说后端,只需要提供统一的json格式数据就可以,不需要管我前端如何展示。就是这样的情况,下面我们来看下如何将后端的数据json化

后端数据转换为json

      假设前端需要如下的数据格式:那么我们后端提供的josn格式就应该是这样的,这就利用到数据格式的转换了。

那么我们定义相关的类,看如何实现这样的格式。

///     /// 第一大类    ///     public class TreeView    {        [JsonProperty("id")]        public int Id { get; set; }        [JsonProperty("text")]        public string Text { get; set; }        [JsonProperty("children")]        public IList
Childrens{ get; set; } } ///
/// 第一大类中包含的第二大类 /// public class TreeChildrenView { [JsonProperty("id")] public int Id { get; set; } [JsonProperty("text")] public string Text { get; set; } [JsonProperty("children")] public IList
Childrens { get; set; } } ///
/// 第二大类包含的第三大类 /// public class Tree2ChildrenView { [JsonProperty("id")] public int Id { get; set; } [JsonProperty("text")] public string Text { get; set; } }

我们后端需要进行josn化,就需要引用Newtonsoft.Json此类库。

JsonConvert.SerializeObject();

下面看我们的代码。

static void Main(string[] args)        {            var treeView = new TreeView()            {                Id=1,                Text = "陕西",            };            var childrenTree = new TreeChildrenView()            {                Id=2,                Text = "宝鸡市"            };            var chchTree = new Tree2ChildrenView()            {                Id=3,                Text = "眉县"            };            childrenTree.Childrens = new List
(); childrenTree.Childrens.Add(chchTree); treeView.Childrens=new List
(); treeView.Childrens.Add(childrenTree); string json = JsonConvert.SerializeObject(treeView); Console.WriteLine(json); Console.ReadLine(); }

我们可以看到只使用了一句转换代码。我们就可以得到具体的json数据。

解释

  •   属性上面的标签 :[JsonProperty("id")]

意思是在json过程中将大写的Id转换为小写的。其余的意思一样。

  • 实例化List<>
childrenTree.Childrens = new List
();

难道我每次都要写这句吗。我们可以放到构造函数中去:

public class TreeView    {        public TreeView()        {            this.Childrens=new List
(); } [JsonProperty("id")] public int Id { get; set; } [JsonProperty("text")] public string Text { get; set; } [JsonProperty("children")] public IList
Childrens{ get; set; } }

这样我们每次就直接使用就OK了。

childrenTree.Childrens.Add(chchTree);

不需要再去实例化它,因为它自己调用的时候就自动实例化了。

转载于:https://www.cnblogs.com/netxiaohui/p/5764524.html

你可能感兴趣的文章
面试问答常见的兼容问题?
查看>>
关于ViewPager设置属性页setCurrentItem会阻塞主线程ANR总结
查看>>
15.3Sum
查看>>
Appium+python自动化3-启动淘宝app
查看>>
Android(3_2)-----模仿微信界面:通讯录页面
查看>>
eclipse创建web项目web.xml配置文件笔记
查看>>
配置Hadoop1.2.1
查看>>
php缓存
查看>>
ISP中去马赛克-demosiac入门
查看>>
协程之生成器
查看>>
golang数组与切片
查看>>
SpringBoot简单的REST风格例子
查看>>
NEMA-0183(GPRMC GPGGA)详细解释
查看>>
imsdroid 学习(初认识)
查看>>
DB_Links创建际删除
查看>>
ajax jsonp跨域
查看>>
Flex布局新旧混合写法详解(兼容微信)
查看>>
activemq 的那些事1
查看>>
Android MIFARE NFCA源码解析
查看>>
IOS TextField设置大全
查看>>