JSONError parseString(char [] js, List<JSONToken> tokens) {
		int i;
	
		int start = pos;
	
		pos++;
	
		/* Skip starting quote */
		for (; pos < js.length; pos++) {
			char c = js[pos];
	
			/* Quote: end of string */
			if (c == '\"') {
				allocateToken(tokens, JSONType.JSMN_STRING, start+1, pos);
				return JSONError.JSMN_SUCCESS;
			}
	
			/* Backslash: Quoted symbol expected */
			if (c == '\\') {
				pos++;
				switch (js[pos]) {
					/* Allowed escaped symbols */
					case '\"': case '/' : case '\\' : case 'b' :
					case 'f' : case 'r' : case 'n'  : case 't' :
						break;
					/* Allows escaped symbol XXXX */
					case 'u':
						for(i = 0; i < 4; i++){
							pos++;
							if(!isxdigit(js[pos])){
								pos = start;
								return JSONError.JSMN_ERROR_INVAL;
							}
						}
						break;
					/* Unexpected symbol */
					default:
						pos = start;
						return JSONError.JSMN_ERROR_INVAL;
				}
			}
		}
		pos = start;
		return JSONError.JSMN_ERROR_PART;
	}
Filsl next token with JSON string.
Ghidra/Framework/Generic/src/main/java/generic/json/JSONParser.java