2016-04-01 7 views
0

C#でいくつかのAPIを使って作業していますが、404と200(!)のステータスコードでJSONに「エラー」が返されます。JSONの構造は異なるが、C#で同じ名前を逆シリアル化する

1)HTTPステータス200:

{ "Errors": "Duplicated" } 

2)HTTPステータス200:

{ "Errors": {"some_key":"Invalid"} } 

3)HTTPステータス404:

{ "Errors": "some_key1":["Invalid"], "some_key2":["Invalid"] } 

1 - 文字列にマップ - OK 2 - Dictionary<string,string>にマッピングされますが、文字列には割り当てられません 3 - それをModelState Dictionary<string,List<string>>にマップOK。ステータスコードがdiffであるため(Json文字列の "Errors"の名前を変更し、それをdiffプロパティ名にマッピングします)。

唯一の問題は、両方とも同じHTTPステータスコードと同じノード名「エラー」で返されるため、ケース1と2の場合です。

誰かがこれらのケースで作業しましたか?どのようにそれらを処理するのですか?ケース2をちょうど文字列に変換するか、ケース1を辞書に入れて1,2,3 ..自動生成されたキーにするかのNetwon Json deserialzier設定はありますか?

他のアイデアはありますか?

乾杯

+0

JTokenを最初に解析して「エラー」ノードがあるかどうかをチェックするという手法は私を助けました。 http://www.newtonsoft.com/json/help/html/SerializingJSONFragments.htmしかし、このタイトな私はNewtonJsonです。 –

答えて

関連する問題