Google のデータ APIから JSON フィードを取得していますが、多くのプロパティ名が $ 文字 (ドル記号) で始まります。
私の問題は、ドル記号で始まる変数名を持つ C# クラスを作成できないことです。言語では許可されていません。Newtonsoft の JSON.NETを使用して、JSON を C# オブジェクトに変換しています。どうすればこの問題を回避できますか?
Google のデータ APIから JSON フィードを取得していますが、多くのプロパティ名が $ 文字 (ドル記号) で始まります。
私の問題は、ドル記号で始まる変数名を持つ C# クラスを作成できないことです。言語では許可されていません。Newtonsoft の JSON.NETを使用して、JSON を C# オブジェクトに変換しています。どうすればこの問題を回避できますか?
[JsonProperty]
属性を使用して名前を指定してみてください。
[JsonProperty(PropertyName = "$someName")]
public string SomeName { get; set; }
ドル記号 ($) が付いたアイテムは通常、メタデータであり、フィールドではありません。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 にデータ型を処理するように指示しますが、情報は $ に依存します。
それが役立つことを願っています..