繁体   English   中英

如何将对象解析为像 json 反序列化这样的类?

[英]how can I parse object into a class like json deserialize?

我想制作一个自己的解析器,可以将对象值解析为包含具有属性的类的<T>类型。

ASObject只是一个Dictionary<string, object>

  public class Example {

    public string User { get; set; }
    public int Id { get; set; }

  }

  public static class ServiceResultParser<T>
  {
      public static T Parse(ASObject AS)
      {
          foreach(var l in AS.Values)
          {

          }
      }
  }

Usage:

var Result = ServiceResultParser.Parse<Example>(theobject);
string User = Result.User;

这只是一个我在 json 中称为Example的测试类,我们可以使用JsonConvert.DeserializeObject<T>(value)
不,我不想解析 json。
我现在如何将值解析为Example类?

关于。

您可以检查 T 是否具有名称与字典键匹配的属性:

  public static class ServiceResultParser<T> where T : new()
  {
      public static T Parse(ASObject AS)
      {
          var temp = GetObject();
          foreach(var l in AS)
          {
            PropertyInfo[] properties = typeof(T).GetProperties();
                foreach (PropertyInfo property in properties)
                {
                    if(property.Name == l.Key) property.SetValue(temp, l.Value);
                }
          }
          return temp;
      }
        protected T GetObject()
        {
            return new T();
        }
  }

您还应该检查属性类型是否匹配等...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM