2017-12-18 348 views
1

是否有可能在反序列化JSON字符串過程中進行映射到對象?.NET核心 - Json.NET反序列化映射

var resultObject = JsonConvert.DeserializeObject<ConfigItemGetResult>(result); 

我的JSON字符串與我想要反序列化的對象不同。所以映射必須發生。我試圖避免做一個模型,將1到1映射到JSON字符串,然後使用例如AutoMapper將對象映射到對象。

回答

0

使用Serialization Attributes配置您的序列化映射

public class JsonTest 
{ 
    [JsonProperty(PropertyName = "SomePropNameFromJson")] 
    public string SomeProp { get; set; } 
    [JsonProperty(PropertyName = "SomeNested")] 
    public SomeClass SomeClass { get; set; } 
} 
    public class SomeClass 
    { 
     public SomeClass1 SomeClass1 { get; set; } 
    } 

    public class SomeClass1 
    { 
      public string text { get; set } 
    } 

這裏的Json

{ 「SomeProp」: 「值」, 「SomeNested」:{ 「SomeClass1」:{ 「文本」 :「textvalue」 } }}

Js如果轉換嘗試將文本轉換爲對象通過具有值通過反射的價值如果他們在文本中發現道具名稱,他們將獲得價值如果道具名稱在JSON中有不同的名稱,您可以通過[JsonProperty(PropertyName =「SomeNested」)]指定它,如果這attr沒有默認設置,它會嘗試通過prop名稱獲取,無論屬性是什麼,它是一些對象(你的嵌套對象)或基本類型,它會嘗試自動轉換它。

+0

這是否與嵌套屬性aswel一起工作? – user2963570

+0

@ user2963570,當然 – itikhomi

+0

你能提供一個例子嗎? – user2963570