2016-09-01 5 views
1

属性の1つが"easting"であるjsonデータをダウンロードしようとしています。 JSONデータセットの過半数、"easting"は整数であるが、以下に示すように"easting"は整数のリストであるケースの一握りがある場合:デシリアライズ時にさまざまなデータ型の入力を処理する方法は?

"easting" : 357570 , 
... 
"easting" : [ 434939, 434942 ] , 

私の元のコードは、int場合であること"easting"を予想していました次のようにそのクラスが宣言されました:

public class Item 
{ 
    public int easting { get; set; } 
} 

しかし、私はタイプint []にタイプintを変換することはできませんというエラーを得続けます。 eastingint []のタイプになるようにクラス定義を調整すると、逆のエラーが発生するだけです。タイプint []をタイプintに変換することはできません。

どうすればこの問題を処理できますか?デシリアライズ処理中にさまざまな入力データ型を考慮する方法はありますか?

+0

ダイナミックを使用できますか?これをチェックしてください:http://stackoverflow.com/questions/30147272/serialize-a-json-property-that-is-sometimes-an-array – jpgrassi

+1

あなたがJson.netを使っているなら、これは[この質問](http://stackoverflow.com/questions/18994685/how-to-handle-both-a-single-item-and-an-array-for-the-same-property-using-json-n) – stuartd

+0

@stuartd私は現在、System.Web.Script.Serialization'から 'JavaScriptSerializer'を使用していますが、Json.netに切り替えることもできますが、その例は単純なようです。ありがとう。 – jcusick

答えて

0

最後に、私は@stuartdの提案に従い、JavaScriptSerializerからJson.netへとデシリアライズ処理を行い、question posted hereと一緒に私の問題を解決しました。

関連する問題