JsonValue.fromJson constructor
a JsonValue return type can be :
Implementation
factory JsonValue.fromJson(Map<String, dynamic> json)  {
  switch(json["@type"]) {
    case JsonValueNull.CONSTRUCTOR:
      return JsonValueNull.fromJson(json);
    case JsonValueBoolean.CONSTRUCTOR:
      return JsonValueBoolean.fromJson(json);
    case JsonValueNumber.CONSTRUCTOR:
      return JsonValueNumber.fromJson(json);
    case JsonValueString.CONSTRUCTOR:
      return JsonValueString.fromJson(json);
    case JsonValueArray.CONSTRUCTOR:
      return JsonValueArray.fromJson(json);
    case JsonValueObject.CONSTRUCTOR:
      return JsonValueObject.fromJson(json);
    default:
      return const JsonValue();
  }
}