2011-01-09 40 views

回答

19

,你可以嘗試使用[JsonProperty]屬性來指定名稱:

[JsonProperty(PropertyName = "$someName")] 
public string SomeName { get; set; } 
1

美元符號($),這些項目通常意味着是元數據和NOT領域。當JSON.NET序列化一個對象,你告訴它處理的對象類型,它會插入以後表示爲正確的反序列化元數據$項目。

如果你想治療$項目作爲元數據,使用JsonSerializerSettings。例如:

Dim jsonSettings As New Newtonsoft.Json.JsonSerializerSettings With {.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All} 
Dim jsonOut As String = Newtonsoft.Json.JsonConvert.SerializeObject(objects, jsonSettings) 

的TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All告訴JSON處理的數據類型,同時依靠$的信息。

希望幫助..

4

firas489是在正確的軌道上$指示的元數據,而不是實際的數據字段。然而,修復實際上要做到這一點:

JsonSerializerSettings settings = new JsonSerializerSettings(); 
settings.MetadataPropertyHandling = MetadataPropertyHandling.Ignore;    

集裝卸忽略元數據,然後可以序列/使用屬性名屬性反序列化的屬性:

[JsonProperty("$id")] 
public string Id { get; set; }