diff --git a/lib/src/http/request/request.dart b/lib/src/http/request/request.dart index 84676db..12a3850 100644 --- a/lib/src/http/request/request.dart +++ b/lib/src/http/request/request.dart @@ -1,3 +1,4 @@ +import 'dart:convert'; import 'dart:io'; import 'package:vania/src/exception/validation_exception.dart'; import 'package:vania/src/http/request/request_body.dart'; @@ -150,6 +151,18 @@ class Request { return requestItems; } + Map json(String key) { + if (_all[key] != null && _all[key] is String) { + return jsonDecode(_all[key]); + } + + if (_all[key] != null && _all[key] is Map) { + return _all[key]; + } + + return {}; + } + dynamic input([String? key, dynamic defaultVal]) { if (key == null) { return _all; diff --git a/lib/src/http/request/request_body.dart b/lib/src/http/request/request_body.dart index 66a1643..8bb1713 100644 --- a/lib/src/http/request/request_body.dart +++ b/lib/src/http/request/request_body.dart @@ -4,8 +4,9 @@ import 'dart:io'; import 'package:vania/src/http/request/request_form_data.dart'; String _fixJsonString(String jsonString) { - return jsonString.replaceAllMapped(RegExp(r'("\w+": )(\d+)([\s,}])'), - (Match match) => '${match[1]}"${match[2]}"${match[3]}'); + return jsonString.replaceAllMapped( + RegExp(r'("\w+":)\s*(\d+|\d+\.\d+)([\s,}])'), + (Match match) => '${match[1]}${match[2]}${match[3]}'); } class RequestBody {