I believe you are seeing the exception because the second SKU is in the .productOfferings[1] occurrence not the [0] occurrence.
Assuming that a cleaned up version of your JSON looks as follows:
{
"productOfferings":
[{
"variants": [{ "sku": "6536451" }],
"products": [{ "manufacturer": "ARJ", "serviceProvider": "T-Mobile", "model": "TEST DEVICE" }],
"prices": [{ "oneTimeCharges": [{ "amount": 100, "chargeType": "tradeIn" }] }]
},
{
"variants": [{ "sku": "610214629210" }],
"products": [{ "manufacturer": "Alcatel", "serviceProvider": "T-Mobile", "model": "665 One Touch" }],
"prices": [{ "oneTimeCharges": [{ "amount": 12, "chargeType": "tradeIn" }] }]
},
{
"variants": [{ "sku": "610214637147" }],
"products": [{ "tacCodes": [{ "tacCode": "01413500" }], "manufacturer": "Alcatel", "serviceProvider": "T-Mobile", "model": "P310A OneTouch Pop 7 black" }],
"prices": [{ "oneTimeCharges": [{ "amount": 10, "chargeType": "tradeIn" }] }]
}
]
}
Assuming the above JSON is what you meant to include in your post, the attached example project has a test case in that reads the JSON and parses SKU 0 and SKU 1. The filters used in the test case are:
$.productOfferings[0].variants[0].sku returns 6536451
$.productOfferings[1].variants[0].sku returns 610214629210
$.productOfferings[0].products[0].model return TEST DEVICE
Similarly, if you wanted to access the model in the third occurrence, you would use
$.productOfferings[2].products[0].model returns P310A OneTouch Pop 7 black