jsonオブジェクトをデシリアライズするために、子クラスのオブジェクトまたはオブジェクトの配列を含む親クラスを定義する必要がありました。オブジェクトが取得された場合はオブジェクトでなければならず、配列がjsonから取得された場合はオブジェクトの配列でなければなりません。変数が配列かオブジェクトかをチェックする方法は?
JSON配列オブジェクト
{"y":{"x":[{"data":28}, {"data":56}, {"data":89}]}}
JSONオブジェクト
{"y":{"x":{"data":28}}}
yは別の時にX []時にXを受信し、そしてれます。 yが配列またはオブジェクトを受け取るかどうかを決定するための条件はありません。
私は配列を受け取ったかどうかを判断するために、私はIsArray()条件をチェックしています。
私はそれが働いてイマイチ
class Y
{
public X x { get { return System.IsArray() ? new X() : new x[] }; set; }
}
class X
{
public int data { get; set; }
}
- を試してみました。
- System.IsArray()が認識されていませんか?
JSONを生成するロジックを制御できますか?その場合は、標準契約に従うようにデータオブジェクトを再設計することを検討する必要があります。単一のオブジェクトであり、時には配列であるプロパティを持つことは、設計上の問題であり、長期的には問題になります。あなたが能力を持っているならば、それを配列にすることと、それを考慮に入れてオブジェクトモデルを構築することだけを考慮する必要があります。 –
[IsArray](http://msdn.microsoft.com/en-us/library/system.type.isarray.aspx)は、 'Type'をチェックします。 'System'ではなく、チェックしたいオブジェクトでチェックしてください。 – Default