常に同じ正確な形式ではない JSON を逆シリアル化しようとすると、問題に直面します。私が取得している JSON は次のようなものです (わかりやすくするためにトリミングされています)。
{
"header": {
"code": "4",
"description": "Input Validation Error",
"errors": {
"code": "100",
"description": "externalServiceCode: must match '[A-Za-z0-9_]+'"
}
},
"externalCode": "259716_TRAVELAC"
},
{
"header": {
"code": "4",
"description": "Input Validation Error",
"errors": [
{
"code": "100",
"description": "Currency not valid"
},
{
"code": "100",
"description": "Can not be empty"
}
]
},
"externalCode": "259716_TRA"
}
ご覧のとおり、「エラー」の値は単純です。
"errors":{"code":"1","description":"description"}
または配列として来るかもしれません:
"errors":[{....},{....}].
私は JSON 形式を制御できません (取得しているサービスは別の会社によって作成されています)。
問題は、この JSON を C# に解析する簡単な方法が見つからなかったことです。カスタムクラスを作って、単純なオブジェクトとして試してみると、複数のエラーがあるとデータが欠落し、配列と見なすと、JSON にエラーが 1 つしかない場合は何も取得されません (エラー部分に括弧 [ ] が 1 つしかない場合は、欠落していることに注意してください)。
これを解決する方法はありますか?いくつかのアプローチを試しましたが、何もうまくいかないようです。