You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Any way to know the current object being parsed? #134
Hi,
I am dealing with very large objects and potentially large arrays of stuff. I'm not sure if I can tell from start_object or end_object the name of the object that was being parsed. For instance, if start_object told me the name I could choose to ignore that name (by passing a dummy dictionary) rather than loading it into memory.
I only get callbacks on start of the object (twice, but nothing telling me it is unnamed or called "obj"), the end of the "obj" and main object, the end of the "arr" array, and strings for "first_obj_val" and "second_obj_val". I wish I knew the keys / names for any of these.
For example, there's no way of knowing that "first_obj_val" refers to "obj_val" (or better yet, "obj.obj_val") until the very end.
Looking at the code, it does not seem very difficult to do that: internally, the decoding logic uses an handler that has access the decoder instance: the handler maintains a stack of context structures, one for each level, so that property could basically be implemented by traversing the stack and building a pointer value.
Activity
lelit commentedon Mar 12, 2020
No, there's no way of knowing that, indeed.
Maybe the decoder class could expose that information, possibly as a property returning something like a JSON Pointer?
lelit commentedon Mar 12, 2020
Looking at the code, it does not seem very difficult to do that: internally, the decoding logic uses an
handlerthat has access thedecoderinstance: the handler maintains a stack ofcontextstructures, one for each level, so that property could basically be implemented by traversing the stack and building apointervalue.