我有2个模特
Model1 = OrderItemAll
public partial class OrderItemAll
{
public string ProductCode { get; set; }
public int po_order_no { get; set; }
public string po_backorder_flag { get; set; }
public string EAGTIN { get; set; }
public string INGTIN { get; set; }
public string OUGTIN { get; set; }
}
模型2
public class Consolidate
{
public string ProductCode { get; set; }
public int po_order_no { get; set; }
public string po_backorder_flag { get; set; }
}
在JSON中,我得到OrderItemAll(Model1)格式的数据,我希望将其转换为 合并(Model2)。 我环顾四周,我得到了一些Mapper或AutoMapper类,但我不想使用它。 任何人都可以给我任何其他选择吗? 谢谢
答案 0 :(得分:1)
鉴于您的类成员名称在以下两种类型中都是相同的
Consolidate
您可以直接将其反序列化为JSonConvert.DeserializeObject<Consolidate>(jsonsdrializedData);
类型,如下所示,其他memebrs将在反序列化过程中迷失。
{{1}}
答案 1 :(得分:0)
我建议您使用类似AutoMapper的内容。或者您可以使用以下函数对模型数据(json格式)进行反序列化
/// <summary>
/// Deserialise json to Object
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonData"></param>
/// <returns></returns>
public T ParseJSONtoObject<T>(string jsonData)
{
T obj = JsonConvert.DeserializeObject<T>(jsonData);
return obj;
}
调用上面的方法将json反序列化为模型
var model= ParseJSONtoObject<Consolidate>(jsonData);
答案 2 :(得分:0)
我会选择像AutoMapper这样的外部软件包。比它只是
select
当你想要使用它时
Mapper.Initialize(c =>
{
c.CreateMap<OrderItemAll, Consolidate>();
});
如果您的字段名称不相同,您仍然可以在中心位置添加一些自定义逻辑,您可以在其中指定字段的映射方式。