LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#中JSON字符串与Dictionary字典的相互转换方法

admin
2024年11月15日 10:58 本文热度 503

在C#中,JSON字符串和Dictionary<TKey, TValue>字典类型之间的转换是非常常见的操作。这通常通过使用诸如Json.NET(也称为Newtonsoft.Json)或内置的System.Text.Json库来完成。以下是如何使用这两个库进行转换的示例。

使用 Json.NET(Newtonsoft.Json)

首先,确保项目中安装了Newtonsoft.Json包。可以通过NuGet包管理器来安装它。

JSON字符串转换为Dictionary

using Newtonsoft.Json;using System;using System.Collections.Generic;
public class Program{    public static void Main()    {        string json = "{\"key1\":\"value1\",\"key2\":\"value2\"}";        Dictionary<string, string> dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);        foreach (var kvp in dictionary)        {            Console.WriteLine($"Key = {kvp.Key}, Value = {kvp.Value}");        }    }}

Dictionary转换为JSON字符串

using Newtonsoft.Json;using System;using System.Collections.Generic;
public class Program{    public static void Main()    {        Dictionary<string, string> dictionary = new Dictionary<string, string>        {            { "key1", "value1" },            { "key2", "value2" }        };        string json = JsonConvert.SerializeObject(dictionary);        Console.WriteLine(json);    }}

使用 System.Text.Json

从.NET Core 3.0开始,System.Text.Json成为了.NET内置的JSON处理库。

JSON字符串转换为Dictionary

using System;using System.Collections.Generic;using System.Text.Json;
public class Program{    public static void Main()    {        string json = "{\"key1\":\"value1\",\"key2\":\"value2\"}";        Dictionary<string, string> dictionary = JsonSerializer.Deserialize<Dictionary<string, string>>(json);        foreach (var kvp in dictionary)        {            Console.WriteLine($"Key = {kvp.Key}, Value = {kvp.Value}");        }    }}

Dictionary转换为JSON字符串

using System;using System.Collections.Generic;using System.Text.Json;
public class Program{    public static void Main()    {        Dictionary<string, string> dictionary = new Dictionary<string, string>        {            { "key1", "value1" },            { "key2", "value2" }        };        string json = JsonSerializer.Serialize(dictionary);        Console.WriteLine(json);    }}

注意事项

  1. 键和值的类型:在上面的示例中,键和值都是字符串类型。如果字典包含其他类型的键或值,需要相应地调整泛型参数。
  2. 复杂对象:如果字典的值是复杂对象,而不是简单的值类型,需要定义相应的类来表示这些对象,并在序列化和反序列化时使用这些类。
  3. 错误处理:在实际应用中,应该添加适当的错误处理逻辑来处理潜在的JSON格式错误或反序列化失败的情况。
  4. 性能:System.Text.Json通常比Json.NET更快且内存占用更少,特别是在处理大型JSON数据时。然而,Json.NET提供了更多的功能和配置选项。根据具体需求选择合适的库。

该文章在 2024/11/15 11:20:34 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved