flutter 如何在dart中将x-www-form-urlencoded string转换为json?

w9apscun  于 2023-06-24  发布在  Flutter
关注(0)|答案(2)|浏览(170)
String source= "BRN=920736&STC=000&RMK=success&TRN=935851295243587"

如何在dart中将x-www-form-urlencoded字符串转换为json?

xiozqbni

xiozqbni1#

您可以使用Uri.splitQueryStringx-www-form-urlencoded查询字符串解析为Map<String, String>。注意,键和值都是String s,所以如果你想把一些值解释为int s,你需要显式地解析它们(例如:int.parse)。
示例:

var source = "BRN=920736&STC=000&RMK=success&TRN=935851295243587";
var map = Uri.splitQueryString(source);
print(map); // Prints: {BRN: 920736, STC: 000, RMK: success, TRN: 935851295243587}
dxxyhpgq

dxxyhpgq2#

如果x-www-form-urlencoded表单数据中没有重复的字段名,则使用Uri.splitQueryString是可行的。但是,如果您 * 确实 * 有重复字段,例如:

a=1234&a=5678&b=9876

你需要使用Uri(query: source).queryParametersAll。例如:

final source = 'a=1234&a=5678&b=9876';
final fields = Uri(query: source).queryParametersAll;
List<String>? a = fields['a']; // [ '1234', '5678' ]
String? b = fields['b']?.first; // '9876'

相关问题