示例代码
JToken json = JObject.Parse(
" {\"Url\": \"www.fakeUrl.com\",\"CallId\": 12}");
var poco = mapper.Map<CallData>(json);
Console.WriteLine(json);
Console.WriteLine(poco.Url + " " + poco.CallId);
简单模型
public class CallData
{
public int CallId { get; set; }
public string Url { get; set; }
}
输出
{“ Url”:“ www.fakeUrl.com”,“ CallId”:12}
www.fakeUrl.com 0
我很好奇,为什么Automapper不在此JSON对象中映射整数?我知道还有其他替代方法,例如自定义扩展,但是我想知道为什么AutoMapper无法做这个简单的地图?
Automapper V7.0.1
答案 0 :(得分:0)
我通过添加自定义映射解决了该问题。我仍然认为这是下划线库的问题,由于这种简单的原始映射不需要扩展,因此将作进一步调查。
映射器
CreateMap<dynamic ,CallData>().ConvertUsing((jo) =>
{
var callData = new CallData();
JsonSerializer serializer = new JsonSerializer();
if(jo != null)
serializer.Populate((JsonReader) jo.CreateReader(), callData);
return callData;
});
用法
var response =_mapper.Map<dynamic, CallData>(_callData);