利用JsonConvert.SerializeObject()实现类对象的…
2018-06-17 22:17:26来源:未知 阅读 ()
现阶段的项目是采用前后端分离的思想,前端使用的是Angular.JS,后端使用ABP框架,在后端我们通过WebAPI技术来向前端提供json数据。以前是通过MVC来写前端的代码,感觉后端有点在控制前端的节奏,一些少量的后端代码还是需要在HTML页面中写的,这次采用的这种模式,前端不需要写一点后端的C#代码,只负责写自己页面,至于说后端,只需要提供统一的json格式数据就可以,不需要管我前端如何展示。就是这样的情况,下面我们来看下如何将后端的数据json化。
后端数据转换为json
假设前端需要如下的数据格式:那么我们后端提供的josn格式就应该是这样的,这就利用到数据格式的转换了。
那么我们定义相关的类,看如何实现这样的格式。
/// <summary> /// 第一大类 /// </summary> public class TreeView { [JsonProperty("id")] public int Id { get; set; } [JsonProperty("text")] public string Text { get; set; } [JsonProperty("children")] public IList<TreeChildrenView> Childrens{ get; set; } } /// <summary> /// 第一大类中包含的第二大类 /// </summary> public class TreeChildrenView { [JsonProperty("id")] public int Id { get; set; } [JsonProperty("text")] public string Text { get; set; } [JsonProperty("children")] public IList<Tree2ChildrenView> Childrens { get; set; } } /// <summary> /// 第二大类包含的第三大类 /// </summary> 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<Tree2ChildrenView>(); childrenTree.Childrens.Add(chchTree); treeView.Childrens=new List<TreeChildrenView>(); treeView.Childrens.Add(childrenTree); string json = JsonConvert.SerializeObject(treeView); Console.WriteLine(json); Console.ReadLine(); }
我们可以看到只使用了一句转换代码。我们就可以得到具体的json数据。
解释
- 属性上面的标签 :[JsonProperty("id")]
意思是在json过程中将大写的Id转换为小写的。其余的意思一样。
- 实例化List<>
childrenTree.Childrens = new List<Tree2ChildrenView>();
难道我每次都要写这句吗。我们可以放到构造函数中去:
public class TreeView { public TreeView() { this.Childrens=new List<TreeChildrenView>(); } [JsonProperty("id")] public int Id { get; set; } [JsonProperty("text")] public string Text { get; set; } [JsonProperty("children")] public IList<TreeChildrenView> Childrens{ get; set; } }
这样我们每次就直接使用就OK了。
childrenTree.Childrens.Add(chchTree);
不需要再去实例化它,因为它自己调用的时候就自动实例化了。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:窗体间传值(委托)
下一篇:分页控件layui的使用
- 利用python自动生成verilog模块例化模板 2019-08-13
- 原创:Python编写通讯录,支持模糊查询,利用数据库存储 2019-07-24
- 利用Python模拟登录pastebin.com 2019-07-24
- 利用切片赋值为空串达到删除列表值的目的 2019-07-24
- 针对源代码和检查元素不一致的网页爬虫——利用Selenium、Ph 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash