JsonConvert.DeserializeObject
是 Newtonsoft.Json 库中的一个方法,用于将 JSON 字符串反序列化为指定类型的对象。如果你只知道类名的字符串,而不知道具体的类型,可以通过反射来动态创建类型实例并反序列化。
以下是一个示例代码,展示如何使用类名字符串进行反序列化:
using Newtonsoft.Json;
using System;
using System.Reflection;
public class Example
{
public static void Main()
{
string json = "{\"Name\":\"John\", \"Age\":30}";
// 类名字符串
string className = "MyNamespace.Person";
// 使用反射获取类型
Type type = Type.GetType(className);
if (type == null)
{
Console.WriteLine("无法找到指定的类型");
return;
}
// 反序列化 JSON 字符串到指定类型的对象
object instance = JsonConvert.DeserializeObject(json, type);
// 输出反序列化后的对象属性
var properties = type.GetProperties();
foreach (var prop in properties)
{
Console.WriteLine($"{prop.Name}: {prop.GetValue(instance)}");
}
}
}
// 假设 Person 类定义如下
namespace MyNamespace
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
}
JsonConvert.DeserializeObject<T>
方法时,确保 T
类型与 JSON 结构一致。通过上述方法和示例代码,你可以动态地根据类名字符串反序列化 JSON 数据。
领取专属 10元无门槛券
手把手带您无忧上云