【.NET开发福音】使用Visual Studio将JSON格式数据自动转化为对应的类

简介: 【.NET开发福音】使用Visual Studio将JSON格式数据自动转化为对应的类

前言:

  这段时间一直在做一个第三方平台的对接,对接第三方其实无非就是请求调用第三方的相关接口接收返回过来的相关参数。因此在这个过程中就会涉及大量的JSON响应参数或者请求参数转化为对应的实体类的情况,因为只有转化为对应的实体类我们才好进行相关的数据操作。那么问题来了,这样我们在遇到后很多JSON对象的情况下是不是要自己一个一个的去写对应类的属性那假如有二三十个那岂不是要疯了去,其实咱们强大的Visual Studio有一个强大的功能能够将JSON串自动转化为对应的类(真的是一个提高工作效率的好方法)。

一、首先进行Json格式化校验

http://www.bejson.com/  (推荐这个在线工具非常好用)

1336199-20210323000312399-490498672.png

{
    "metaData": {
        "defaultLang": "zh-CN",
        "name": "追逐时光者每日一秀",
        "categoryIds": ["214342106997653504", "214343889333583872"],
        "tagIds": ["215586040843403264", "212828639341903872"],
        "residentAGApp": "101144753",
        "sourceName": "追逐时光者出版社",
        "sellingMode": 2,
        "remarks": "你是最棒的",
        "availableFrom": "2019-01-01T08:00:00Z",
        "availableBefore": "2020-01-01T10:00:00Z",
        "autoStatusChange": [{
            "status": 0,
            "changeTime": "string"
        }],
        "eduappUsed": true,
        "eduappPurchased": true,
        "devProductId": "1001",
        "distNotifyUrl": "https://www.cnblogs.com/Can-daydayup/",
        "validityUnit": 5,
        "validityNum": 1,
        "includeLessons": true,
        "typeId": 1001,
        "teachers": ["212828639341903872"],
        "mediaType": 3,
        "needDelivery": true
    },
    "countryCodes": ["CN", "SG"]
}

二、复制JSON串,前往Visual Studio找到编辑=》选择性粘贴=》将JSON粘贴为类:

注意:首先根据自己的需求创建一个对应实体空白类

1336199-20210323000555921-568652774.png

三、JSON成功转化的实体类:

namespace Domain.Model
{
    public class Rootobject
    {
        public Metadata metaData { get; set; }
        public string[] countryCodes { get; set; }
    }
    public class Metadata
    {
        public string defaultLang { get; set; }
        public string name { get; set; }
        public string[] categoryIds { get; set; }
        public string[] tagIds { get; set; }
        public string residentAGApp { get; set; }
        public string sourceName { get; set; }
        public int sellingMode { get; set; }
        public string remarks { get; set; }
        public DateTime availableFrom { get; set; }
        public DateTime availableBefore { get; set; }
        public Autostatuschange[] autoStatusChange { get; set; }
        public bool eduappUsed { get; set; }
        public bool eduappPurchased { get; set; }
        public string devProductId { get; set; }
        public string distNotifyUrl { get; set; }
        public int validityUnit { get; set; }
        public int validityNum { get; set; }
        public bool includeLessons { get; set; }
        public int typeId { get; set; }
        public string[] teachers { get; set; }
        public int mediaType { get; set; }
        public bool needDelivery { get; set; }
    }
    public class Autostatuschange
    {
        public int status { get; set; }
        public string changeTime { get; set; }
    }
}
相关文章
|
1月前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
6天前
|
IDE 测试技术 开发工具
.NET开发者福音:JetBrains官方宣布 Rider 非商用免费开放!
.NET开发者福音:JetBrains官方宣布 Rider 非商用免费开放!
|
23天前
.NET 4.0下实现.NET4.5的Task类相似功能组件
【10月更文挑战第29天】在.NET 4.0 环境下,可以使用 `BackgroundWorker` 类来实现类似于 .NET 4.5 中 `Task` 类的功能。`BackgroundWorker` 允许在后台执行耗时操作,同时不会阻塞用户界面线程,并支持进度报告和取消操作。尽管它有一些局限性,如复杂的事件处理模型和不灵活的任务管理方式,但在某些情况下仍能有效替代 `Task` 类。
|
1月前
|
前端开发 JavaScript C#
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
|
1月前
|
API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
25 0
|
2月前
|
存储 运维
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
|
3月前
|
缓存 程序员
封装一个给 .NET Framework 用的内存缓存帮助类
封装一个给 .NET Framework 用的内存缓存帮助类
|
4月前
|
C++ Windows
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。
166 0
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
|
4月前
|
人工智能 前端开发 Devops
NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。
【7月更文挑战第4天】**.NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。实际应用涵盖企业系统、Web、移动和游戏开发,以及云服务。面对性能挑战、容器化、AI集成及跨平台竞争,.NET持续创新,开发者应关注技术趋势,提升技能,并参与社区,共同推进技术发展。**
40 1
|
4月前
|
JSON 数据格式
MysbatisPlus-核心功能-IService开发基础业务接口,MysbatisPlus_Restful风格,新增@RequestBody指定是为了接收Json数据的,使用swagger必须注解
MysbatisPlus-核心功能-IService开发基础业务接口,MysbatisPlus_Restful风格,新增@RequestBody指定是为了接收Json数据的,使用swagger必须注解