对于deserialising JSON对象,我不得不定义将包含一个或多个对象的为子类阵列的父类。如果一个对象被检索,它必须是一个对象,或者如果从json中检索到一个数组,则它必须是一个对象数组。如何检查变量是数组还是对象?
JSON阵列对象
{"y":{"x":[{"data":28}, {"data":56}, {"data":89}]}}
JSON对象
{"y":{"x":{"data":28}}}
Y在一次接收的x,而x []在另一时间。没有这样的条件来确定是否会收到一个数组或对象。
因此,用于确定是否我接收到的阵列或不,我检查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逻辑控制?如果是这样,您应该考虑重新设计数据对象以遵循标准合同。拥有一个属性有时是一个单一的对象,有时是一个数组是一个糟糕的设计和长远来看有问题。如果你有能力,你应该考虑把它作为一个数组,并建立你的对象模型来解决这个问题。 – 2012-04-12 06:23:04
[IsArray](http://msdn.microsoft.com/zh-cn/library/system.type.isarray.aspx)检查“Type”。你应该检查你感兴趣的对象而不是'System'。 – Default 2012-04-12 06:23:33