c# json存储数据

csharp,using System;,using Newtonsoft.Json;,using System.IO;class Program,{, static void Main(), {, // 创建示例数据, Person person = new Person { Name = "John", Age = 30 }; // 序列化对象到JSON字符串, string json = JsonConvert.SerializeObject(person);, Console.WriteLine("Serialized JSON: " + json); // 将JSON字符串保存到文件, File.WriteAllText("person.json", json); // 从文件读取JSON字符串, string jsonFromFile = File.ReadAllText("person.json");, Console.WriteLine("JSON from file: " + jsonFromFile); // 反序列化JSON字符串到对象, Person deserializedPerson = JsonConvert.DeserializeObject(jsonFromFile);, Console.WriteLine("Deserialized Person: " + deserializedPerson.Name + ", " + deserializedPerson.Age);, },}public class Person,{, public string Name { get; set; }, public int Age { get; set; },},

在C#中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于存储和传输数据,下面将详细介绍如何在C#中使用JSON来存储数据:

c# json存储数据

一、使用Newtonsoft.Json库

1、安装Newtonsoft.Json

通过NuGet包管理器安装Newtonsoft.Json库,在Visual Studio的“工具”菜单中选择“NuGet包管理器”,然后选择“管理解决方案的NuGet包”,在搜索框中输入“Newtonsoft.Json”,选择该包并点击“安装”按钮。

2、创建模型类

定义与要存储的数据结构相对应的C#类,如果要存储一个包含姓名、年龄和电子邮件地址的人员信息,可以创建一个名为“Person”的类:

“`csharp

public class Person

{

public string Name { get; set; }

public int Age { get; set; }

public string Email { get; set; }

}

c# json存储数据

3、序列化对象为JSON字符串
   使用JsonConvert.SerializeObject方法将C#对象转换为JSON字符串。
   ```csharp
     Person person = new Person { Name = "张三", Age = 25, Email = "zhangsan@example.com" };
     string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(person);
     Console.WriteLine(jsonString);

上述代码将输出类似于{"Name":"张三","Age":25,"Email":"zhangsan@example.com"}的JSON字符串。

4、反序列化JSON字符串为对象

使用JsonConvert.DeserializeObject<T>方法将JSON字符串转换回C#对象。

“`csharp

string jsonString = "{"Name":"李四","Age":30,"Email":"lisi@example.com"}";

Person deserializedPerson = Newtonsoft.Json.JsonConvert.DeserializeObject<Person>(jsonString);

Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}, Email: {deserializedPerson.Email}");

   上述代码将输出“Name: 李四, Age: 30, Email: lisi@example.com”。
二、使用System.Text.Json库(.NET Core 3.0及以上版本)
1、创建模型类
   同样需要先定义与数据结构对应的C#类,如上述的“Person”类。
2、序列化对象为JSON字符串
   使用JsonSerializer.Serialize方法。
   ```csharp
     Person person = new Person { Name = "王五", Age = 40, Email = "wangwu@example.com" };
     string jsonString = System.Text.Json.JsonSerializer.Serialize(person);
     Console.WriteLine(jsonString);

输出结果与使用Newtonsoft.Json库类似。

3、反序列化JSON字符串为对象

使用JsonSerializer.Deserialize<T>方法。

“`csharp

c# json存储数据

string jsonString = "{"Name":"赵六","Age":28,"Email":"zhaoliu@example.com"}";

Person deserializedPerson = System.Text.Json.JsonSerializer.Deserialize<Person>(jsonString);

Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}, Email: {deserializedPerson.Email}");

   输出结果与使用Newtonsoft.Json库类似。
三、将JSON数据存储到文件
1、写入JSON字符串到文件
   无论是使用Newtonsoft.Json还是System.Text.Json库生成的JSON字符串,都可以使用C#的文件操作类将其写入到文件中。
   ```csharp
     System.IO.File.WriteAllText("person.json", jsonString);

上述代码将把JSON字符串写入到当前目录下的“person.json”文件中。

2、从文件读取JSON字符串

可以使用System.IO.File.ReadAllText方法从文件中读取JSON字符串。

“`csharp

string readJsonString = System.IO.File.ReadAllText("person.json");

   然后可以使用相应的反序列化方法将读取到的JSON字符串转换回C#对象。
四、将JSON数据存储到数据库
1、存储为文本字段
   如果使用的是关系型数据库(如SQL Server、MySQL等),可以将JSON字符串存储在数据库表的文本字段(如VARCHAR、TEXT等)中,在插入数据时,将序列化后的JSON字符串插入到相应的字段中;在查询数据时,将查询到的JSON字符串反序列化回C#对象。
2、使用NoSQL数据库
   NoSQL数据库(如MongoDB)更适合存储JSON格式的数据,可以使用相应的.NET驱动程序将C#对象直接存储到NoSQL数据库中,也可以将JSON字符串存储到数据库中,使用MongoDB的官方C#驱动程序,可以轻松地将C#对象与MongoDB文档进行相互转换和存储操作。
在C#中存储JSON数据有多种方式,可以根据具体的需求和应用场景选择合适的方法,无论是使用第三方库还是内置库,都能够方便地进行JSON数据的序列化和反序列化操作,从而实现数据的存储和读取。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1590608.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希
上一篇 2025-02-24 10:11
下一篇 2025-02-24 10:13

相关推荐

  • c# 文件的写入数据库

    在C#中,将文件内容写入数据库通常涉及读取文件、建立数据库连接、执行SQL插入命令等步骤。以下是一个简答示例:“csharp,using System;,using System.Data.SqlClient;,using System.IO;class Program,{, static void Main(), {, string filePath = “path/to/your/file.txt”;, string connectionString = “your_connection_string”;, string insertQuery = “INSERT INTO YourTable (ColumnName) VALUES (@Content)”; try, {, string fileContent = File.ReadAllText(filePath);, using (SqlConnection connection = new SqlConnection(connectionString)), {, connection.Open();, using (SqlCommand command = new SqlCommand(insertQuery, connection)), {, command.Parameters.AddWithValue(“@Content”, fileContent);, command.ExecuteNonQuery();, }, }, Console.WriteLine(“File content written to database successfully.”);, }, catch (Exception ex), {, Console.WriteLine($”An error occurred: {ex.Message}”);, }, },},“

    2025-02-26
    017
  • c# mvc 发布网站源码

    在C# MVC中发布网站源码,通常需要将项目部署到服务器或使用Web Deploy工具进行发布。确保所有依赖项和配置文件正确设置,然后通过Visual Studio的发布向导完成部署。

    2025-02-26
    011
  • c# 向sql 创建数据库

    在C#中,可以使用ADO.NET库中的SqlConnection和SqlCommand类来连接SQL Server并创建数据库。需要建立与SQL Server的连接,然后执行CREATE DATABASE语句来创建数据库。

    2025-02-26
    017
  • c# sqlite 更新数据库语句

    在C#中使用SQLite更新数据库,可以使用System.Data.SQLite库。以下是一个示例代码片段:“csharp,using System.Data.SQLite;string connectionString = “Data Source=your_database.db;Version=3;”;,using (SQLiteConnection connection = new SQLiteConnection(connectionString)),{, connection.Open();, string updateQuery = “UPDATE your_table SET column1 = value1, column2 = value2 WHERE condition”;, using (SQLiteCommand command = new SQLiteCommand(updateQuery, connection)), {, command.ExecuteNonQuery();, },},“

    2025-02-26
    06

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入