如何在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#对象实例,可结合序列化库实现:
- 确保项目引用了
System.Text.Json(.NET Core/.NET 5+默认包含)或Newtonsoft.Json(需通过NuGet安装) - 使用以下代码完成反序列化:
// 示例使用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
相关产品推荐
相关产品推荐

