IDを名前として使用して、JSON JSONオブジェクトのようなAPI応答に遭遇すると、ID番号はデータの識別子として使用され、それらに対処するために強力なタイプC#オブジェクトを作成することは困難な場合があります。この問題を解決しましょう。
次のJSON応答を検討してください:
強力なタイプオブジェクトを作成するために、次のことを定義します。
ただし、質問に直面しています。JSONのルートオブジェクトは、予想される
タイプと一致しません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | {
"5234592" :{
"pollsAndSurveys" :{
"questionsAsked" :1,
...
"pollCount" :2},
"attendance" :{
"averageAttendanceTimeSeconds" :253,
...
"percentageAttendance" :100}
},
"5235291" :{
"pollsAndSurveys" :{
"questionsAsked" :2,
...
"pollCount" :0},
"attendance" :{
"averageAttendanceTimeSeconds" :83,
...
"percentageAttendance" :100}
}
}
|
ログイン後にコピー
この問題を解決するために、辞書をルートオブジェクトとして使用できます。
json.net辞書のシリアル化とデバイスを効果的に処理して、属性名を辞書キーに変換します。この場合、ID番号は辞書キーに実行されます。あなたが喜んでいるなら、あなたはそれらを長い整数として宣言することができます:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | public class AttendanceStatistics
{
[JsonProperty(PropertyName = "registrantCount" )]
public int RegistrantCount { get; set; }
}
public class PollsAndSurveysStatistics
{
[JsonProperty(PropertyName = "pollCount" )]
public int PollCount { get; set; }
}
public class SessionPerformanceStats
{
[JsonProperty(PropertyName = "attendance" )]
public AttendanceStatistics Attendance { get; set; }
[JsonProperty(PropertyName = "pollsAndSurveys" )]
public PollsAndSurveysStatistics PollsAndSurveys { get; set; }
}
public class WebinarPerformanceStats
{
public List<SessionPerformanceStats> Stats { get; set; }
}
|
ログイン後にコピー
WebinarPerformanceStats
この方法により、JSON応答を後方への
または
に変換できるようになりました。ここで、ID番号は単一のセッション統計にアクセスするためのキーとして使用されます。
以上がKeysとしてIDを使用して、JSONから強く型付けられたC#オブジェクトを作成する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。