code: private ArrayList<Object> parseArray(JsonParser jp) throws IOException {
          JsonToken value = jp.nextToken();
          ArrayList<Object> ret = new ArrayList<>();
          while(value != JsonToken.END_ARRAY) {
              if (value == JsonToken.START_OBJECT) {
                  Object object = parseObject(jp);
                  ret.add(object);
              } else if (value == JsonToken.START_ARRAY) {
                  ArrayList<Object> arrayList = parseArray(jp);
                  ret.add(arrayList.toArray());
              } else if (value == JsonToken.VALUE_NUMBER_INT) {
                  ret.add(jp.getValueAsInt());
              } else if (value == JsonToken.VALUE_FALSE || value == JsonToken.VALUE_TRUE) {
                  ret.add(jp.getValueAsBoolean());
              } else if (value == JsonToken.VALUE_NUMBER_FLOAT) {
                  ret.add(jp.getValueAsDouble());
              } else if (value == JsonToken.VALUE_STRING) {
                  ret.add(jp.getValueAsString());
              } else if (value == JsonToken.VALUE_NULL) {
                  ret.add("null");
              }
              value = jp.nextToken();
          }
          return ret;
      }
docs: Parses Json Array and returns an ArrayList
  Syntax:
  Json Array:
  {"member1": value1}, value2, value3, {"member4": value4}]
  @param jp the json parser
  @return the array