originalString is a string containing all the data from a JSON file ready to be parsed. Define ReadJSON(originalString): Iterate through al l characters of originalString as index i: First find '{', this is the opening brace for any given JSON object. Allocate memory for our new JSONDocument object. Set pointer to result Read characters until a '"' is found. This is the start of a key. Find the next '"' that is not preceded by '\' (escape characters should ignore the next character). This is the end of a key. Store the key name in a variable called key without the quotation marks. Next find the colon ':' character. Now read until a non-whitespace character (ignore \t, ' ', and \n) is found. If it's a { then we found another JSON object: Set start to i. Set a nesting counter to 0. Iterate through all characters of originalString continuing from index i as index i: As we search, if we find a '{': Increment nesting by 1. As we search, if we find a '}': If nesting == 0: Call ReadJSON( originalString.substr(start, i) ) else: Decrement nesting by 1.