Given the following model:
```
public class JsonSelectCustomer
{
public int Id { get; set; }
public string Name { get; set; }
public virtual IList<JsonSelectOrder> JsonSelectOrders { get; set; }
}
public class JsonSelectPremiumCustomer : JsonSelectCustomer
{
public string Category { get; set; }
public IList<JsonSelectBonus> Bonuses { get; set; }
}
public class JsonSelectBonus
{
public int Id { get; set; }
public double Ammount { get; set; }
}
public class JsonSelectOrder
{
public int Id { get; set; }
public DateTime Date { get; set; }
public JsonSelectAddress BillingAddress { get; set; }
public virtual IList<JsonSelectOrderDetail> OrderDetails { get; set; }
}
public class JsonSelectAddress
{
public string FirstLine { get; set; }
public string SecondLine { get; set; }
public int ZipCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
}
public class JsonSelectOrderDetail
{
public int Id { get; set; }
public string Name { get; set; }
public int Ammount { get; set; }
public double Price { get; set; }
}
```
When a customer issues the following query:
/api/JsonSelectCustomer?$select=Id,JsonSelectOrders&$expand=JsonSelectOrders
The JsonSelectAddress property doesn't get serialized as it does in the OData case.
Here is the response payload sample:
```
[
{
"Id": 0,
"JsonSelectOrders": []
},
{
"Id": 1,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2454402-07:00"
}
]
},
{
"Id": 2,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2464399-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2464399-07:00"
}
]
},
{
"Id": 3,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
}
]
},
{
"Id": 4,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
}
]
},
{
"Id": 5,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
}
]
},
{
"Id": 6,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
}
]
},
{
"Id": 7,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
},
{
"Id": 6,
"Date": "2013-05-08T11:20:45.2474403-07:00"
}
]
},
{
"Id": 8,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
},
{
"Id": 6,
"Date": "2013-05-08T11:20:45.2474403-07:00"
},
{
"Id": 7,
"Date": "2013-05-07T11:20:45.2474403-07:00"
}
]
},
{
"Id": 9,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
},
{
"Id": 6,
"Date": "2013-05-08T11:20:45.2474403-07:00"
},
{
"Id": 7,
"Date": "2013-05-07T11:20:45.2474403-07:00"
},
{
"Id": 8,
"Date": "2013-05-06T11:20:45.2474403-07:00"
}
]
}
]
```
```
public class JsonSelectCustomer
{
public int Id { get; set; }
public string Name { get; set; }
public virtual IList<JsonSelectOrder> JsonSelectOrders { get; set; }
}
public class JsonSelectPremiumCustomer : JsonSelectCustomer
{
public string Category { get; set; }
public IList<JsonSelectBonus> Bonuses { get; set; }
}
public class JsonSelectBonus
{
public int Id { get; set; }
public double Ammount { get; set; }
}
public class JsonSelectOrder
{
public int Id { get; set; }
public DateTime Date { get; set; }
public JsonSelectAddress BillingAddress { get; set; }
public virtual IList<JsonSelectOrderDetail> OrderDetails { get; set; }
}
public class JsonSelectAddress
{
public string FirstLine { get; set; }
public string SecondLine { get; set; }
public int ZipCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
}
public class JsonSelectOrderDetail
{
public int Id { get; set; }
public string Name { get; set; }
public int Ammount { get; set; }
public double Price { get; set; }
}
```
When a customer issues the following query:
/api/JsonSelectCustomer?$select=Id,JsonSelectOrders&$expand=JsonSelectOrders
The JsonSelectAddress property doesn't get serialized as it does in the OData case.
Here is the response payload sample:
```
[
{
"Id": 0,
"JsonSelectOrders": []
},
{
"Id": 1,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2454402-07:00"
}
]
},
{
"Id": 2,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2464399-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2464399-07:00"
}
]
},
{
"Id": 3,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
}
]
},
{
"Id": 4,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
}
]
},
{
"Id": 5,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
}
]
},
{
"Id": 6,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
}
]
},
{
"Id": 7,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
},
{
"Id": 6,
"Date": "2013-05-08T11:20:45.2474403-07:00"
}
]
},
{
"Id": 8,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
},
{
"Id": 6,
"Date": "2013-05-08T11:20:45.2474403-07:00"
},
{
"Id": 7,
"Date": "2013-05-07T11:20:45.2474403-07:00"
}
]
},
{
"Id": 9,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
},
{
"Id": 6,
"Date": "2013-05-08T11:20:45.2474403-07:00"
},
{
"Id": 7,
"Date": "2013-05-07T11:20:45.2474403-07:00"
},
{
"Id": 8,
"Date": "2013-05-06T11:20:45.2474403-07:00"
}
]
}
]
```