当前位置:首页 > 代码相关 > 正文内容

.NET Core 3.1序列化与反序列化JSON

admin4个月前 (05-23)代码相关322

.NET Core 3.1和3.0引入了System.Text.Json命名空间,可以不用引入外部包来序列化了。

微软官方说明链接https://docs.microsoft.com/zh-cn/dotnet/standard/serialization/system-text-json-how-to?pivots=dotnet-core-3-1

简单使用如下:

using System;
using System.IO;
using System.Text.Json;

namespace _20210523json
{
    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person() { Name = "cyhu", Age = 12, Gender = "male", Height = 173.5f };
            //序列化写入到json文件
            FileStream fileStream = new FileStream(@"E:\json.json", FileMode.OpenOrCreate, FileAccess.Write);
            Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(fileStream);         
            JsonSerializer.Serialize(utf8JsonWriter, person);
            fileStream.Close();

            //直接序列化成string,JsonSerializerOptions选项用于格式化以及其他功能
            JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions() { WriteIndented = true };
            string json = JsonSerializer.Serialize(person, jsonSerializerOptions);
            Console.WriteLine(json);

            //反序列化生成对象
            string jsonString = File.ReadAllText(@"E:\json.json");
            Person person2 = JsonSerializer.Deserialize<Person>(jsonString);


            Console.ReadKey();
        }

        class Person
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public string Gender { get; set; }
            public float Height { get; set; }
        }
    }
}


版权声明:本文由cyhu's essay发布,如需转载请注明出处。

本文链接:https://lovedm.club/?id=132

相关文章

C# 正则表达式(2)

// pattan = @"[^ahou]"; 表示匹配除ahou之外的字符,^在表示反义 string res4 =...

C#事件_Sample_3

事件的拥有者同时是事件的响应者using System; using System.Windows.Forms; /// <summary> ///&n...

C# 使用FileStream进行文件复制操作

使用文件流进行操作,如下,其中注释部分是和非注释部分一样的,但是使用using语句是执行完后自动释放内存,而注释部分是手动释放。CopyFile方法中,缓冲区大小设为1024*1024字节,也就是1M...

C# 委托

C# 委托

Action和Func是.NET类库的内置委托,以简便使用。Func有17个重载还可以使用delegate关键字创建委托下面的代码展示了这三种使用委托的方法namespace _202003...

C语言 rename

在<stdio.h>头文件下以下内容来自:http://www.cplusplus.com/reference/cstdio/rename/?kw=renamerenameint ...

C语言qsort简单使用

qsort函数位于stdlib.h头文件里。是用来排序的函数,函数原型如下:void qsort(void *ptr, size_t count, size_t size, int (*comp)(c...