A method for storing a hierarchical data object comprising: for a hierarchical data object comprising field names that are each associated with one or more field values in said hierarchical data object , generating a plurality of hash codes , each hash code of said plurality of hash codes corresponding to a respective field name of said field names ; generating a hash-code mapping that maps each hash code of said plurality of hash codes to a respective field-name identifier of a plurality of field-name identifiers , wherein for each hash code of said plurality of hash codes , said hash-code mapping includes at least a portion of said each hash code; generating a field-name mapping that maps each field name of said field names to a respective field-name identifier of said plurality of field-name identifiers ; generating a hierarchical tree of nodes , wherein said hierarchical tree of nodes comprises non-leaf nodes (402, 404, 410, 414, 420-426) and leaf nodes (406, 408, 412, 416, 418, 428-438), wherein a particular non-leaf node of said non-leaf nodes (402, 404, 410, 414, 420-426) comprises: a child node mapping that maps said particular non-leaf node to one or more child nodes of said particular non-leaf node ; and a field-name-identifier-to-child mapping that maps a respective field-name identifier of said plurality of field-name identifiers to each of said one or more child nodes of said particular non-leaf node ; storing, in a record representing said hierarchical data object , for use in resolving a path expression, said hash-code mapping , said field-name mapping , and for said particular non-leaf node of said non-leaf nodes (402, 404, 410, 414, 420-426), the child node mapping and the field-name-identifier-to-child mapping ; and wherein said method is performed by one or more computing devices. for a hierarchical data object comprising field names that are each associated with one or more field values in said hierarchical data object , generating a plurality of hash codes , each hash code of said plurality of hash codes corresponding to a respective field name of said field names ; generating a hash-code mapping that maps each hash code of said plurality of hash codes to a respective field-name identifier of a plurality of field-name identifiers , wherein for each hash code of said plurality of hash codes , said hash-code mapping includes at least a portion of said each hash code; generating a field-name mapping that maps each field name of said field names to a respective field-name identifier of said plurality of field-name identifiers ; generating a hierarchical tree of nodes , wherein said hierarchical tree of nodes comprises non-leaf nodes (402, 404, 410, 414, 420-426) and leaf nodes (406, 408, 412, 416, 418, 428-438), wherein a particular non-leaf node of said non-leaf nodes (402, 404, 410, 414, 420-426) comprises: a child node mapping that maps said particular non-leaf node to one or more child nodes of said particular non-leaf node ; and a field-name-identifier-to-child mapping that maps a respective field-name identifier of said plurality of field-name identifiers to each of said one or more child nodes of said particular non-leaf node ; a child node mapping that maps said particular non-leaf node to one or more child nodes of said particular non-leaf node ; and a field-name-identifier-to-child mapping that maps a respective field-name identifier of said plurality of field-name identifiers to each of said one or more child nodes of said particular non-leaf node ; storing, in a record representing said hierarchical data object , for use in resolving a path expression, said hash-code mapping , said field-name mapping , and for said particular non-leaf node of said non-leaf nodes (402, 404, 410, 414, 420-426), the child node mapping and the field-name-identifier-to-child mapping ; and wherein said method is performed by one or more computing devices. <EOS>