platform/packages/body_parser/lib/src/get_value.dart

23 lines
520 B
Dart
Raw Normal View History

2021-06-20 12:37:20 +00:00
import 'dart:convert';
2021-06-20 12:37:20 +00:00
dynamic getValue(String value) {
2018-08-11 02:08:44 +00:00
try {
2021-06-20 12:37:20 +00:00
var numValue = num.parse(value);
if (!numValue.isNaN) {
2018-08-11 02:08:44 +00:00
return numValue;
2021-06-20 12:37:20 +00:00
} else {
2018-08-11 02:08:44 +00:00
return value;
2021-06-20 12:37:20 +00:00
}
2018-08-11 02:08:44 +00:00
} on FormatException {
2021-06-20 12:37:20 +00:00
if (value.startsWith('[') && value.endsWith(']')) {
2018-08-11 02:08:44 +00:00
return json.decode(value);
2021-06-20 12:37:20 +00:00
} else if (value.startsWith('{') && value.endsWith('}')) {
2018-08-11 02:08:44 +00:00
return json.decode(value);
2021-06-20 12:37:20 +00:00
} else if (value.trim().toLowerCase() == 'null') {
2018-08-11 02:08:44 +00:00
return null;
2021-06-20 12:37:20 +00:00
} else {
2018-08-11 02:08:44 +00:00
return value;
2021-06-20 12:37:20 +00:00
}
2018-08-11 02:08:44 +00:00
}
}