| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import 'dart:convert';
- class JsonUtils {
- static String encodeJson(Object? value, {
- Object? Function(dynamic object)? toEncodable,
- }) {
- return json.encode(value, toEncodable: toEncodable);
- }
- static dynamic decodeJson(String source, {
- Object? Function(Object? key, Object? value)? reviver,
- }) {
- return json.decode(source, reviver: reviver);
- }
- static String getString(Map? map, String key, {String defaultValue = ''}) {
- if (map == null || !map.containsKey(key)) return defaultValue;
- final value = map[key];
- if (value == null) return defaultValue;
- return value.toString();
- }
- static String? tryGetString(Map? map, String key) {
- if (map == null || !map.containsKey(key)) return null;
- final value = map[key];
- if (value == null) return null;
- return value.toString();
- }
- static int getInt(Map? map, String key, {int defaultValue = 0}) {
- if (map == null || !map.containsKey(key)) return defaultValue;
- final value = map[key];
- if (value == null) return defaultValue;
- if (value is int) return value;
- return int.tryParse(value.toString()) ?? defaultValue;
- }
- static int? tryGetInt(Map? map, String key) {
- if (map == null || !map.containsKey(key)) return null;
- final value = map[key];
- if (value == null) return null;
- if (value is int) return value;
- return int.tryParse(value.toString());
- }
- static DateTime getDateTime(Map? map, String key) {
- DateTime defaultValue = DateTime.now();
- if (map == null || !map.containsKey(key)) return defaultValue;
- final value = map[key];
- if (value == null) return defaultValue;
- if (value is int) return DateTime.fromMillisecondsSinceEpoch(value);
- if (value is String) {
- final timestamp = int.tryParse(value);
- if (timestamp != null) {
- return DateTime.fromMillisecondsSinceEpoch(timestamp);
- }
- }
- final dateTime = DateTime.tryParse(value.toString());
- return dateTime ?? defaultValue;
- }
- static DateTime? tryGetDateTime(Map? map, String key) {
- DateTime? defaultValue;
- if (map == null || !map.containsKey(key)) return defaultValue;
- final value = map[key];
- if (value == null) return defaultValue;
- if (value is int) return DateTime.fromMillisecondsSinceEpoch(value);
- if (value is String) {
- final timestamp = int.tryParse(value);
- if (timestamp != null) {
- return DateTime.fromMillisecondsSinceEpoch(timestamp);
- }
- }
- final dateTime = DateTime.tryParse(value.toString());
- return dateTime ?? defaultValue;
- }
- }
|