我從Google's data API得到一個JSON飼料和大量的屬性名以$字符(美元符號)開始。如何C#類應對JSON美元符號?
我的問題是,我不能創建一個變量名稱以美元符號C#類,它是沒有用的語言允許的。我正在使用JSON.NET from Newtonsoft將JSON轉換爲C#對象。我怎樣才能解決這個問題?
我從Google's data API得到一個JSON飼料和大量的屬性名以$字符(美元符號)開始。如何C#類應對JSON美元符號?
我的問題是,我不能創建一個變量名稱以美元符號C#類,它是沒有用的語言允許的。我正在使用JSON.NET from Newtonsoft將JSON轉換爲C#對象。我怎樣才能解決這個問題?
,你可以嘗試使用[JsonProperty]
屬性來指定名稱:
[JsonProperty(PropertyName = "$someName")]
public string SomeName { get; set; }
美元符號($),這些項目通常意味着是元數據和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處理的數據類型,同時依靠$的信息。
希望幫助..
firas489是在正確的軌道上$指示的元數據,而不是實際的數據字段。然而,修復實際上要做到這一點:
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.MetadataPropertyHandling = MetadataPropertyHandling.Ignore;
集裝卸忽略元數據,然後可以序列/使用屬性名屬性反序列化的屬性:
[JsonProperty("$id")]
public string Id { get; set; }