fluro_convert_utils.dart 1.82 KB

import 'dart:convert';

import 'package:collection/collection.dart' show IterableExtension;
import 'package:one_key/models/table_list.dart';

/// fluro 参数编码解码工具类
class FluroConvertUtils {
  /// fluro 传递中文参数前,先转换,fluro 不支持中文传递
  static String fluroCnParamsEncode(String originalCn) {
    return jsonEncode(Utf8Encoder().convert(originalCn));
  }

  /// fluro 传递后取出参数,解析
  static String fluroCnParamsDecode(String encodeCn) {
    List<int> list = [];

    ///字符串解码
    jsonDecode(encodeCn).forEach(list.add);
    String value = Utf8Decoder().convert(list);
    return value;
  }

  /// string 转为 int
  static int string2int(String str) {
    return int.parse(str);
  }

  /// string 转为 double
  static double string2double(String str) {
    return double.parse(str);
  }

  /// string 转为 bool
  static bool string2bool(String str) {
    if (str == 'true') {
      return true;
    } else {
      return false;
    }
  }

  /// object 转为 string json
  static String object2string<T>(T t) {

    return fluroCnParamsEncode(jsonEncode(t));
  }

 

  /// string json 转为 map
  static Map<String, dynamic>? string2map(String str) {
    return json.decode(fluroCnParamsDecode(str));
  }

    /// string json 转为 map
  static List<dynamic>? string2list(String str) {
    return json.decode(fluroCnParamsDecode(str));
  }

  /// string json 转为 map
  static Map<String, List<TableList>>? string2mapTableList(String str) {
    return json.decode(fluroCnParamsDecode(str));
  }

  ///枚举类型转string
  static String enumToString(o) => o.toString().split('.').last;

  ///string转枚举类型
  static T? enumFromString<T>(Iterable<T> values, String value) {
    return values.firstWhereOrNull((type) => type.toString().split('.').last == value);
  }
}