EXPECT
EXPECT(tokens->type == JSMN_ARRAY, tokens, "expected top level array");
EXPECT(obj->type == JSMN_OBJECT, obj, "expected object");
EXPECT(field->type == JSMN_STRING, tok + j,
EXPECT(val->type == JSMN_STRING, tok + j + 1,
EXPECT(tok - tokens == len, tok, "unexpected objects at end");