利用JsonConvert.SerializeObject()实现类对象的json化

简介: 利用JsonConvert.SerializeObject()实现类对象的json化

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


后端数据转换为json


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


679140-20160812125344187-1032827294.png


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

/// <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数据。


679140-20160812125351796-1457077655.png


解释


  •  属性上面的标签 :[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);


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




目录
相关文章
|
4月前
|
JSON JavaScript 前端开发
JavaScript实现字符串转json对象的方法
JavaScript实现字符串转json对象的方法
|
2月前
|
JSON 前端开发 JavaScript
json字符串如何转为list对象?
json字符串如何转为list对象?
383 7
|
2月前
|
JSON JavaScript 前端开发
js如何格式化一个JSON对象?
js如何格式化一个JSON对象?
113 3
|
3月前
|
XML JSON JavaScript
JSON对象的stringify()和parse()方法使用
本文阐述了JSON对象的`stringify()`和`parse()`方法的用法,包括如何将JavaScript对象转换为JSON字符串,以及如何将JSON字符串解析回JavaScript对象,并讨论了转换过程中需要注意的事项。
JSON对象的stringify()和parse()方法使用
|
3月前
|
JSON 前端开发 中间件
React读取properties配置文件转化为json对象并使用在url地址中
本文介绍了如何在React项目中读取properties配置文件,将其内容转化为JSON对象,并在请求URL地址时使用这些配置。文章详细说明了异步读取文件、处理字符串转换为JSON对象的过程,并提供了一个封装函数,用于在发起请求前动态生成配置化的URL地址。
100 1
|
5月前
|
存储 JSON 测试技术
python中json和类对象的相互转化
针对python中类对象和json的相关转化问题, 本文介绍了4种方式,涉及了三个非常强大的python库jsonpickle、attrs和cattrs、pydantic,但是这些库的功能并未涉及太深。在工作中,遇到实际的问题时,可以根据这几种方法,灵活选取。 再回到结构化测试数据的构造,当需要对数据进行建模时,也就是赋予数据业务含义,pydantic应该是首选,目前(2024.7.1)来看,pydantic的生态非常活跃,各种基于pydantic的工具也非常多,建议尝试。
|
6月前
|
JSON Java fastjson
老程序员分享:java对象转json
老程序员分享:java对象转json
177 3
|
5月前
|
存储 JSON Java
Java对象转换为JSON字符串
在Java开发中,常需将数据对象转换为JSON存储,如使用Fastjson库。要将Java对象转为JSON,可调用`JSON.toJSONString(obj)`;反向转换则用`JSON.parseObject(str, Class)`。
|
5月前
|
JSON Java 数据格式
前后端数据交换,JSON基础语法和JSON数据和Java对象转换,最快的对象转换,JSON{““}字符串如何写User{id=1,username=‘zhangsan‘,password=‘123‘}
前后端数据交换,JSON基础语法和JSON数据和Java对象转换,最快的对象转换,JSON{““}字符串如何写User{id=1,username=‘zhangsan‘,password=‘123‘}
|
6月前
|
JSON 运维 Serverless
函数计算产品使用问题之无法返回JSON对象,一般是什么导致的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

热门文章

最新文章