利用JsonConvert.SerializeObject()实现类对象的json化
现阶段的项目是采用前后端分离的思想,前端使用的是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);
不需要再去实例化它,因为它自己调用的时候就自动实例化了。
利用JsonConvert.SerializeObject()实现类对象的json化的更多相关文章
- SpringBoot实体类对象和json格式的转化
1.引入maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson ...
- 将java中Map对象转为有相同属性的类对象(json作为中间转换)
java中Map对象转为有相同属性的类对象(json作为中间转换) 准备好json转换工具类 public class JsonUtil { private static ObjectMapper o ...
- @Html.Raw() 与Newtonsoft.Json.JsonConvert.SerializeObject()
一.后台 ViewBag.TypeList = typeList; 二.前台C# @{ var typeListFirst = ViewBag.TypeList;} 三.前台js中 var t ...
- 三:C#对象转换Json时的一些高级(特殊)设置;
导航目录: Newtonsoft.Json 概述 一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型: 二:C#对象.集合.DataTable与Json内容互转示例: ...
- Json序列化与反序列化(对象与Json字符串的转换)--C#
public class JsonHelper { #region Json序列化与反序列化 /// <summary> /// 将json转化为对象 /// (需要提前构造好结构一致的M ...
- 后台对象转JSON字符串传到前台,前台JSON字符串转对象绑定标签赋值
/// <summary> /// 创建换货单-自动获取对应的数据(后端) /// </summary> [HttpGet] public ActionResult GetPr ...
- 福利->KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型
我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型 ...
- OC 类对象和类加载
//------------------------Persion类----------------------------// 1 #import "Person.h" @imp ...
- C++ 类的动态组件化技术
序言: N年前,我们曾在软件开发上出现了这样的困惑,用VC开发COM组件过于复杂,用VB开发COM组件发现效率低,而且不能实现面向对象的很多特性,例如,继承,多态等.更况且如何快速封装利用历史遗留的大 ...
随机推荐
- 学习笔记:Hashtable和HashMap
学了这么些天的基础知识发现自己还是个门外汗,难怪自己一直混的不怎么样.但这样的恶补不知道有没有用,是不是过段时间这些知识又忘了呢?这些知识平时的工作好像都是随拿随用的,也并不是平时一点没有关注过这些基 ...
- 使用jQuery.form插件,实现完美的表单异步提交
传送门:异步编程系列目录…… 时间真快,转眼一个月快结束了,一个月没写博客了!手开始生了,怎么开始呢…… 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 月份的尾巴,今天的主 ...
- [Voice communications] 声音的滤波
本系列文章主要是介绍 Web Audio API 的相关知识,以及 web语音通信 中会遇到的一些问题,阐述可能存在错误,还请多多斧正! 通过设备获取音频流会不可避免的渗入一些杂音,这些杂音可能来自你 ...
- Linux下MongoDB服务安装
Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...
- hibernate用注解替代映射文件
1.首先把原来的映射文件删掉,给实体类添加注解: @Entity //声明当前类为hibernate映射到数据库中的实体类 @Table(name="news") //声明tabl ...
- GitHub iOS-Top 100 简介
GitHub排名前100的iOS第三方汇总简介,方便开发者选择适合的第三方框架. 项目名称 项目信息 1. AFNetworking 作者是 NSHipster 的博主, iOS 开发界的大神级人物, ...
- iOS瀑布流实现(Swift)
这段时间突然想到一个很久之前用到的知识-瀑布流,本来想用一个简单的方法,发现自己走入了歧途,最终只能狠下心来重写UICollectionViewFlowLayout.下面我将用两种方法实现瀑布流,以及 ...
- SQL Server 维护计划实现数据库备份(策略实战)
一.背景 之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划 ...
- Autocomplete 自动补全(Webform实战篇)
开篇语 因为项目中需要用到一个自动补全的功能,功能描述: 需求一:新增收件人的时候,自动下拉显示出数据库中所有的收件人信息(显示的信息包括:姓名-收件地址-联系方式) 需求二:选中一个值得时候,分别赋 ...
- ASP.NET MVC之从控制器传递数据到视图四种方式(一)
前言 本系列开始着手讲述ASP.NET MVC,也算是自己对基础的回顾以及进一步深入学习,保证每天发表一篇该系列文章,关于基本知识则不再叙述,园子有关文章不胜枚举,这一系列若有叙述不当或错误之处,欢迎 ...