【发布时间】:2018-11-09 21:03:14
【问题描述】:
示例代码
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
【问题讨论】:
-
代码似乎正确。您是否尝试过使用
JObject而不是JToken?。Json.net可能有些奇怪。 -
是的,尝试了 JToken 仍然没有,我也只是在 Automappers GitHub 上打开一个问题
-
感谢@OrelEraki,这很有用,但是我仍然觉得这里存在问题,因为 Automapper 应该能够映射这种原始类型而无需扩展。它映射字符串而不是整数?我正在寻找答案而不是替代解决方案
-
将您的代码与自定义映射组合it can be done 似乎有一些代码使用 TypeConverters codingcanvas.com/mapping-json-to-objects-using-automapper
标签: c# json.net automapper .net-core-2.1