You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio中自动将JSON文本转换为C#类对象

在Visual Studio中从JSON自动生成C#类的方法

方法一:使用「粘贴特殊」功能(最便捷)

这是Visual Studio原生内置功能,无需额外工具:

  • 复制你提供的JSON文本
  • 在Visual Studio中新建一个C#类文件(右键项目→添加→类)
  • 将光标移到类的内部代码块中(比如namespace YourNamespace { }的大括号内)
  • 点击顶部菜单栏的「编辑」→「粘贴特殊」→「将JSON粘贴为类」
  • 系统会自动生成包含所有层级结构的C#类,包括嵌套类和集合类型

生成后的示例代码如下:

public class RootObject
{
    public string firstName { get; set; }
    public string lastName { get; set; }
    public string gender { get; set; }
    public int age { get; set; }
    public Address address { get; set; }
    public List<PhoneNumber> phoneNumbers { get; set; }
}

public class Address
{
    public string streetAddress { get; set; }
    public string city { get; set; }
    public string state { get; set; }
    public string postalCode { get; set; }
}

public class PhoneNumber
{
    public string type { get; set; }
    public string number { get; set; }
}

方法二:通过反序列化直接生成对象实例

如果需要直接得到JSON对应的C#对象实例,可结合序列化库实现:

  1. 确保项目引用了System.Text.Json(.NET Core/.NET 5+默认包含)或Newtonsoft.Json(需通过NuGet安装)
  2. 使用以下代码完成反序列化:
// 示例使用System.Text.Json
using System.Text.Json;

string jsonContent = @"{
  ""firstName"": ""John"",
  ""lastName"": ""Smith"",
  ""gender"": ""man"",
  ""age"": 32,
  ""address"": {
    ""streetAddress"": ""21 2nd Street"",
    ""city"": ""New York"",
    ""state"": ""NY"",
    ""postalCode"": ""10021""
  },
  ""phoneNumbers"": [
    {
      ""type"": ""home"",
      ""number"": ""212 555-1234""
    },
    {
      ""type"": ""fax"",
      ""number"": ""646 555-4567""
    }
  ]
}";

var person = JsonSerializer.Deserialize<RootObject>(jsonContent);

注:这里的RootObject就是方法一生成的类结构


内容的提问来源于stack exchange,提问作者Muhammad Hanif Shahzad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:13:32