在automapper中反序列化动态对象?

时间:2018-09-10 07:20:32

标签: c# asp.net-core automapper

我正在从第三方API提取一些数据。在响应中,我得到了一个动态的location_info对象

{
  "country_code3": "SE",
  "country_name": "Sweden",
  "city_name": "Malmo",
  "latitude": 86.69,
  "longitude": 173.0551
}

现在,我想获取country_name并使用AutoMapper将其映射到属性Country中。为此,我想将上述动态JSON反序列化为LocationInfo模型:

public class LocationInfo
{
    public string Country_Name { get; set; }
}

然后AutoMapper将Country_Name映射到Country。这是我尝试过的:

.ForMember(dest => dest.Country, opts => opts.MapFrom(src => JsonConvert.DeserializeObject<LocationInfo>(src.LocationInfo).Country_Name); 

但是它没有用,并且出现了以下异常:

  

表达式树可能不包含动态操作。

1 个答案:

答案 0 :(得分:0)

需要在映射内执行某些方法时,可以使用name<='*Abby'方法。对于您的情况将是:

ResolveUsing