1. A method comprising: storing a plurality of parser definitions, wherein each parser definition is associated with an object type, wherein a particular parser definition of the one or more parser definitions comprises two or more parser sub-definitions, wherein a first parser sub-definition of the two or more parser sub-definitions is associated with a first property type, and wherein a second parser sub-definition of the two or more parser sub-definitions is associated with a second property type; wherein at least the first property type is a composite type that includes two or more of a string component, a date component, or a number component; determining whether input data matches the particular parser definition; based at least in part on determining that the input data matches the particular parser definition: creating at least a first property instance of the first property type and a second property instance of the second property type; storing first data corresponding to a first portion of the input data in the first property instance, wherein the first portion of the input data and the corresponding first data each include two or more of string data, date data, or number data; storing second data based on a second portion of the input data in the second property instance; wherein the method is performed by one or more computing devices.