protected int readJSONArray(JSONArray jsonArray, int startIdx) {
		int cnt = this.tokens.size();
		int i = startIdx;
		for (i = startIdx; i < cnt; i++) {
			Token t = this.tokens.get(i);
			//System.out.println("In sq open:" +  t.getValue());			
			switch (t.getTokenType()) {
			case JSONParserConstants.CURLY_BRACKET_OPEN:
				JSONObject jsonObj = new JSONObject();
				i = readJSONObject(jsonObj, i + 1);
				jsonArray.add(jsonObj);
				break;
			case JSONParserConstants.TOKEN_TYPE_NUMBER:
				if(t.isDecimal()){
					jsonArray.add(Double.valueOf(t.getValue()));
				}else{
					jsonArray.add(Long.valueOf(t.getValue()));
				}				
				break;
			case JSONParserConstants.TOKEN_TYPE_STRING:
				jsonArray.add(t.getValue());
				break;
			case JSONParserConstants.TOKEN_TYPE_BOOLEAN:
				jsonArray.add(Boolean.valueOf(t.getValue()));
				break;
			case JSONParserConstants.TOKEN_TYPE_NULL:
				jsonArray.add(t.getValue());
				break;
			case JSONParserConstants.SQUARE_BRACKET_CLOSE:
				return i;				
			}
		}
		return startIdx;
	}