私は愚かかもしれませんが、私はこの1つに固執しています。擬似json配列をデシリアライズしてCにする方法#
私はC#でコーディングしていて、JSON文字列をオブジェクトとして解析しようとしています。 問題は、文字列に擬似配列と呼ばれるデータフィールドが含まれていることです。それは実際の配列ではないので、[]が欠けています。
私は本当に500のプロパティを持つオブジェクトを作成したくありません。 APIのJSONレスポンス - しかし、私はこれをC#オブジェクトにどのように逆シリアル化しますか?
以下は、APIのドキュメントページのサンプルJSONです。 (私はAPIを所有していないため、JSONは変更できません)
アドバイスをいただければ幸いです。あなたのJSONオブジェクトの おかげ K
`
{
"data": {
"71489": { <---- This is supposed to be an item in an array - but it isn't
"air_by_date": 0,
"cache": {
"banner": 1,
"poster": 1
},
"language": "en",
"network": "USA Network",
"next_ep_airdate": "",
"paused": 0,
"quality": "HD720p",
"show_name": "Law & Order: Criminal Intent",
"status": "Ended",
"tvdbid": 71489,
"tvrage_id": 4203,
"tvrage_name": "Law & Order: Criminal Intent"
},
"140141": {
"air_by_date": 0,
"cache": {
"banner": 0,
"poster": 0
},
"language": "fr",
"network": "CBS",
"next_ep_airdate": "2012-01-15",
"paused": 0,
"quality": "Any",
"show_name": "Undercover Boss (US)",
"status": "Continuing",
"tvdbid": 140141,
"tvrage_id": 22657,
"tvrage_name": "Undercover Boss"
},
...
"194751": {
"air_by_date": 1,
"cache": {
"banner": 1,
"poster": 1
},
"language": "en",
"network": "TBS Superstation",
"next_ep_airdate": 2011-11-28",
"paused": 0,
"quality": "Custom",
"show_name": "Conan (2010)",
"status": "Continuing",
"tvdbid": 194751,
"tvrage_id": 0,
"tvrage_name": ""
},
"248261": {
"air_by_date": 0,
"cache": {
"banner": 1,
"poster": 1
},
"language": "en",
"network": "Cartoon Network",
"next_ep_airdate": "",
"paused": 1,
"quality": "HD",
"show_name": "NTSF:SD:SUV::",
"status": "Continuing",
"tvdbid": 248261,
"tvrage_id": 28439,
"tvrage_name": "NTSF:SD:SUV"
}
},
"message": "",
"result": "success"
}
`
(この場合は、数字列)適切なキーで各要素にアクセスする必要があります。 [不正なC#識別子の原因となるJSON文字列を解析するにはどうすればいいですか?](https://stackoverflow.com/q/24536533/3744182)と[名前がIDのjsonオブジェクトから強く型付けされたC#オブジェクトを作成する] https://stackoverflow.com/q/34213566/3744182)。 – dbc