A method, performed by a computing system comprising: a processor ; and memory containing program instructions executable by the processor, wherein the method comprises repeatedly performing, for blocks of a textual data-interchange file , operations including: receiving, by a parser executing on the computing system, a block of the textual data-interchange file , wherein the block contains one or more records , each encapsulated by a brace or a bracket, and wherein the one or more records each contain one or more elements (814-818, 824-828, 834-838), and each of the elements comprises an object containing a name / value pair, an array containing an ordered set of values, or a value, or a combination thereof; and while a next block is received: identifying, by the parser , any pre-defined elements of the one or more elements contained in records that are completed within the block, wherein the pre-defined elements are specified by a set of paths, each path hierarchically defining a location of an element within a record; storing, by the parser , into one or more files or one or more database tables, the pre-defined elements contained in records that are completed within the block; and determining, by the parser , whether the block ends with a partial record, and maintaining any such partial record for later storage in conjunction with processing of a subsequent block of the textual data-interchange file . a processor ; and memory containing program instructions executable by the processor, wherein the method comprises repeatedly performing, for blocks of a textual data-interchange file , operations including: receiving, by a parser executing on the computing system, a block of the textual data-interchange file , wherein the block contains one or more records , each encapsulated by a brace or a bracket, and wherein the one or more records each contain one or more elements (814-818, 824-828, 834-838), and each of the elements comprises an object containing a name / value pair, an array containing an ordered set of values, or a value, or a combination thereof; and while a next block is received: identifying, by the parser , any pre-defined elements of the one or more elements contained in records that are completed within the block, wherein the pre-defined elements are specified by a set of paths, each path hierarchically defining a location of an element within a record; storing, by the parser , into one or more files or one or more database tables, the pre-defined elements contained in records that are completed within the block; and determining, by the parser , whether the block ends with a partial record, and maintaining any such partial record for later storage in conjunction with processing of a subsequent block of the textual data-interchange file . identifying, by the parser , any pre-defined elements of the one or more elements contained in records that are completed within the block, wherein the pre-defined elements are specified by a set of paths, each path hierarchically defining a location of an element within a record; storing, by the parser , into one or more files or one or more database tables, the pre-defined elements contained in records that are completed within the block; and determining, by the parser , whether the block ends with a partial record, and maintaining any such partial record for later storage in conjunction with processing of a subsequent block of the textual data-interchange file . <EOS>