I have a JSON channel that looks like this (I deleted some fields that are not needed for this example):
{ "total_count": 2, "num_pages": 1, "current_page": 1, "balance": { "amount": "0.00001199", "currency": "BTC" }, "transactions": [ { "transaction": { "id": "5018f833f8182b129c00002f", "created_at": "2012-08-01T02:34:43-07:00", "sender": { "id": "5011f33df8182b142400000e", "name": "User Two", "email": "user2@example.com" }, "recipient": { "id": "5011f33df8182b142400000a", "name": "User One", "email": "user1@example.com" } } }, { "transaction": { "id": "5018f833f8182b129c00002e", "created_at": "2012-08-01T02:36:43-07:00", "hsh": "9d6a7d1112c3db9de5315b421a5153d71413f5f752aff75bf504b77df4e646a3", "sender": { "id": "5011f33df8182b142400000e", "name": "User Two", "email": "user2@example.com" }, "recipient_address": "37muSN5ZrukVTvyVh3mT5Zc5ew9L9CBare" } } ] }
There are two types of transactions in this feed: internal transactions with recipient and external transactions with hsh and recipient_address .
I created the following classes to accommodate this structure:

So, we have a base class for all paged results ( PagedResult ) with a specific transaction implementation ( TransactionPagedResult ). This result contains a collection containing 0 .. * transactions (abstract Transaction class). They are not of type Transaction , but of type InternalTransaction or ExternalTransaction , which are Transaction implementations.
My question is how can I let JSON.NET handle this. I want JSON.NET to find out if the current transaction is the InternalTransaction or ExternalTransaction syntax, and add the appropriate type to the IEnumerable<Transaction> collection in TransactionPagedResult .
I created my own JsonConverter, which I added as a property for IEnumerable<Transaction> with the attribute [JsonConverter(typeof(TransactionCreationConverter))] , but this did not work, I get the following error:
Additional Information: Error reading JObject from JsonReader. The current JsonReader Element is not an object: StartArray. The "transaction" path, line 1, position 218.
I understand this because JSON.NET is trying to deserialize the entire collection, but I want it to deserialize each object within the collection one at a time.
Is anyone