[解決済み] .NET NewtonSoft JSONのデシリアライズマップを異なるプロパティ名に変更する。
2022-03-17 15:06:56
質問
外部から受信した以下のJSON文字列があります。
{
"team":[
{
"v1":"",
"attributes":{
"eighty_min_score":"",
"home_or_away":"home",
"score":"22",
"team_id":"500"
}
},
{
"v1":"",
"attributes":{
"eighty_min_score":"",
"home_or_away":"away",
"score":"30",
"team_id":"600"
}
}
]
}
私のマッピングクラスです。
public class Attributes
{
public string eighty_min_score { get; set; }
public string home_or_away { get; set; }
public string score { get; set; }
public string team_id { get; set; }
}
public class Team
{
public string v1 { get; set; }
public Attributes attributes { get; set; }
}
public class RootObject
{
public List<Team> team { get; set; }
}
が気に入らないということです。
Attributes
クラス名
と、その
attributes
フィールド名
の中に
Team
クラスがあります。その代わり、名前を
TeamScore
を削除し、さらに
_
をフィールド名から削除し、適切な名前を付けてください。
JsonConvert.DeserializeObject<RootObject>(jsonText);
名前を変更することができます
Attributes
を
TeamScore
が、フィールド名を変更すると(
attributes
の中で
Team
クラス) の場合、正しくデシリアライズされずに
null
. これを克服するにはどうしたらよいでしょうか。
どのように解決するのですか?
Json.NET - ニュートンソフト
には
JsonPropertyAttribute
というように、JSONのプロパティ名を指定することができるので、コードはこうなります。
public class TeamScore
{
[JsonProperty("eighty_min_score")]
public string EightyMinScore { get; set; }
[JsonProperty("home_or_away")]
public string HomeOrAway { get; set; }
[JsonProperty("score ")]
public string Score { get; set; }
[JsonProperty("team_id")]
public string TeamId { get; set; }
}
public class Team
{
public string v1 { get; set; }
[JsonProperty("attributes")]
public TeamScore TeamScores { get; set; }
}
public class RootObject
{
public List<Team> Team { get; set; }
}
ドキュメンテーション シリアライズ属性
関連
-
[解決済み] Postgresで、レコードにjsonや文字列が混在している場合に、'invalid input syntax for type json'を防ぐにはどうしたらよいでしょうか。
-
[解決済み] Notepad++でJSONを再フォーマットする方法は?
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] JSONをC#のダイナミックオブジェクトにデシリアライズする?
-
[解決済み] ASP.NETでJSONを単純なDictionary<string,string>にデシリアライズするにはどうすればよいですか?
-
[解決済み] Json.netを使用してJSONオブジェクトを動的オブジェクトにデシリアライズする。
-
[解決済み】Newtonsoftを使用してJSONを.NETオブジェクトにデシリアライズする(またはLINQ to JSONかも?)
-
[解決済み】JObjectを.NETオブジェクトにデシリアライズする方法
-
[解決済み] jqを使用してJSONからキー名を取得する方法
-
[解決済み] JSONオブジェクトをBufferに変換し、BufferをJSONオブジェクトに戻す。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JQ:キーに対するフィルタリング
-
[解決済み] BeautifulSoupでJSONオブジェクトから特定の値をパースする
-
[解決済み] VBScriptによるJSONのデコード/エンコード
-
[解決済み] UnixツールでJSONをパースする
-
[解決済み] RESTful WebServiceにファイルや関連データをJSONで投稿する。
-
[解決済み] Json.netでシリアライズする際、プロパティ名を変更するにはどうすればよいですか?
-
[解決済み] JSONの二重引用符をエスケープする方法
-
[解決済み] どのようにjqを使用して2つのファイルから2つのJSONオブジェクトをマージするには?
-
[解決済み] VSCodeでlaunch.jsonに環境変数を追加する方法
-
[解決済み] PostgresでJSONフィールドにインデックスを作成するには?