gpt4 book ai didi

c# - 如何使用 Json 对象映射 ValueInjecter?

转载 作者:行者123 更新时间:2023-11-30 18:22:08 26 4
gpt4 key购买 nike

如果我有 Json 对象,我想映射到具体对象,我该怎么做?

  public class Student
{
public string Name { get; set; }
}

class Program
{
static void Main(string[] args)
{
var o = new JObject {{"Name", "Jim"}};
Student student = new Student();


student.InjectFrom(o);
}
}

这导致 null。当我期望设置“Jim”时。

最佳答案

由于您使用的是 无论如何,您可以使用 JsonConvert.PopulateObject() 直接从 JSON 填充对象:

JsonConvert.PopulateObject(json, student);

或者,如果您愿意,可以添加一些扩展方法:

public static class JsonExtensions
{
public static void PopulateFromJson<T>(this T target, string json) where T : class
{
if (target == null || json == null)
throw new ArgumentException();
JsonConvert.PopulateObject(json, target);
}

public static void PopulateFromJson<T>(this T target, JToken json) where T : class
{
if (target == null || json == null)
throw new ArgumentException();
using (var reader = json.CreateReader())
JsonSerializer.CreateDefault().Populate(reader, target);
}
}

然后做

        var o = new JObject { { "Name", "Jim" } };
Student student = new Student();
student.PopulateFromJson(o);

关于c# - 如何使用 Json 对象映射 ValueInjecter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34324240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com