code: public static Object convertFromJsonValue(JsonValue value) {
          if (value == null) {
              return null;
          } else if (value.isNumber()) {
              if (value.toString().contains(".")) {
                  return value.asDouble();
              } else {
                  return value.asLong();
              }
          } else if (value.isBoolean()) {
              return value.asBoolean();
          } else if (value.isNull()) {
              return null;
          } else if (value.isString()) {
              return value.asString();
          } else if (value == NonTerminalJsonValue.INSTANCE) {
              return value;
          }
          throw new IllegalArgumentException("Unknown Json type: " + value);
      }
docs: Converts a JsonValue object to its corresponding Java object.
  Type mappings are as shown below
  <ul>
  <li>{@link com.hazelcast.internal.json.JsonString} to {@link String}</li>
  <li>{@link com.hazelcast.internal.json.Json.NULL} to {@code null}</li>
  <li>{@link com.hazelcast.internal.json.Json.TRUE} to {@code true}</li>
  <li>{@link com.hazelcast.internal.json.Json.FALSE} to {@code false}</li>
  <li>
  {@link com.hazelcast.internal.json.JsonNumber} to either
  {@code long} or {@code double}
  </li>
  </ul>
  @param value
  @return