.NET MVC第九章、Web Api Json序列化与反序列化

简介: .NET MVC第九章、Web Api Json序列化与反序列化

json数据格式

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。


JSON 语法

JSON是一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个字面名。


JSON是一个序列化的对象或数组。

{"state":true,"message":"成功访问","result":["苏洵","苏轼","苏辙","苏秦","苏代","苏厉"]}

image.png


这里写了个通用的格式,key:value类型。可以直接使用,我们为了练习,强行二次json序列化一下。


返回对象

public class SUCCESS
{
    public SUCCESS(string message,object result) {
        this.state = true;
        this.message = message;
        this.result = result;
    }
    public Boolean state { get; set; }
    public string message { get; set; }
    public object result { get; set; }
}

Json序列化

using Newtonsoft.Json;
[HttpGet]
public Object GetInfo()
{
    List<string> list = new List<string>() { "苏洵", "苏轼", "苏辙", "苏秦", "苏代", "苏厉" };
    return JsonConvert.SerializeObject(new SUCCESS("操作成功", list));
}

下面是返回结果


"{\"state\":true,\"message\":\"成功访问\",\"result\":[\"苏洵\",\"苏轼\",\"苏辙\",\"苏秦\",\"苏代\",\"苏厉\"]}"


image.png

反序列化:

使用JsonConvert.DeserializeObject(string)进行反序列化


public object GetInfoApi() {
    HttpClient http = new HttpClient();
    Task<string> task = http.GetStringAsync("http://localhost:1246/api/Test/GetInfo");
    string result = task.Result;
    return JsonConvert.DeserializeObject(result);
}

如果未反序列化直接输出则是:


image.png


反序列化后:


image.png


可以看到对应的效果,不过我们不能使用这种带/的json数据,这类是无法正常解析的。


稍微大型一些json格式数据:


{
    "code": 200,
    "message": "查询成功",
    "result": [
        {
            "id": "1D19A58448C144CDA867B3BCE7265D07",
            "createDate": "2021-06-12T14:38:50.547",
            "nickName": "苏泽开",
            "introduce": "帅气的王润松同桌"
        },
        {
            "id": "2CC74D39758641EB99AB0A6DCC59F5E5",
            "createDate": "2021-06-11T15:15:25.583",
            "nickName": "张宇婷",
            "introduce": "国士无双"
        },
        {
            "id": "30F890AB477D4425ADE95773F95985F0",
            "createDate": "2021-06-11T15:16:51.4",
            "nickName": "张舒",
            "introduce": "迪士尼在逃公主,仙女啥样她啥样。"
        },
        {
            "id": "5f42022a8bd347609defc4efd122aa5d",
            "createDate": "2021-09-28T14:19:18.71",
            "nickName": "曲弘扬",
            "introduce": "黑帮教父"
        },
        {
            "id": "6A8746DCB76547BD9BB66597E7E06EF3",
            "createDate": "2021-06-11T15:12:39.32",
            "nickName": "王佳敏",
            "introduce": "当真是喜从天降,一生之中,从未听见过有四个字是这般好听的。"
        },
        {
            "id": "86A3F5AAEBBA49768E6BE55E631B9A21",
            "createDate": "2021-06-11T15:16:22.947",
            "nickName": "张紫璇",
            "introduce": "峨眉绝世不可寻,能使花羞在上林。"
        },
        {
            "id": "955D402234224263A91C28BFD93A24A4",
            "createDate": "2021-06-11T15:10:53.753",
            "nickName": "常子怡",
            "introduce": "北方有美人绝世而独立。一顾倾人城,再顾倾人国。"
        },
        {
            "id": "9855E757E7664F7A81D10159FA4AA4B4",
            "createDate": "2021-06-11T15:08:44.89",
            "nickName": "黄珊",
            "introduce": "箫长琴短衣流黄"
        },
        {
            "id": "9B924F52D9984ED89F0B503D884C86BE",
            "createDate": "2021-06-11T15:06:05.217",
            "nickName": "王浩博",
            "introduce": "人见人爱,花见花开,车见车载。"
        },
        {
            "id": "d0dff2b742054077a4cf94907a25d168",
            "createDate": "2021-09-15T09:26:49.317",
            "nickName": "龙珠",
            "introduce": "笑若桃花三月开,清风徐徐醉颜来。"
        },
        {
            "id": "D8936E94D3AE4313A7C4B2F469B417E5",
            "createDate": "2021-06-11T15:13:38",
            "nickName": "付伟佳",
            "introduce": "芙蓉不足佳人妆,水殿风来珠翠香。"
        },
        {
            "id": "E2DE7B3B5BA943F6BEC0A9E32F6C4941",
            "createDate": "2021-06-11T15:10:01.75",
            "nickName": "纪茜茜",
            "introduce": "云想衣裳花想容,春风拂槛露华浓,若非群玉山头见,会向瑶台月下逢。"
        }
    ]
}
相关文章
|
24天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
36 4
|
26天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
86 3
|
1天前
|
JSON API 数据格式
Amazon商品详情API,json数据格式示例参考
亚马逊商品详情API接口返回的JSON数据格式通常包含丰富的商品信息,以下是一个简化的JSON数据格式示例参考
|
3天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
11 1
|
10天前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
22 2
|
10天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
20天前
|
监控 负载均衡 API
Web、RESTful API 在微服务中有哪些作用?
在微服务架构中,Web 和 RESTful API 扮演着至关重要的角色。它们帮助实现服务之间的通信、数据交换和系统的可扩展性。
41 2
|
23天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索json数据格式示例(API接口)
拍立淘按图搜索API接口为电商平台和购物应用提供了强大的图像搜索功能,能够显著提升用户的购物体验和搜索效率。开发者可以根据自己的需求调用此接口,并处理返回的JSON格式数据来展示推荐商品
|
29天前
|
JSON API 数据格式
低代码实现鸿蒙API返回JSON转TS及快速生成ArkUI代码
低代码实现鸿蒙API返回JSON转TS及快速生成ArkUI代码
33 0
低代码实现鸿蒙API返回JSON转TS及快速生成ArkUI代码
|
1月前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!

热门文章

最新文章