String source= "BRN=920736&STC=000&RMK=success&TRN=935851295243587"
如何在dart中将x-www-form-urlencoded字符串转换为json?
x-www-form-urlencoded
xiozqbni1#
您可以使用Uri.splitQueryString将x-www-form-urlencoded查询字符串解析为Map<String, String>。注意,键和值都是String s,所以如果你想把一些值解释为int s,你需要显式地解析它们(例如:int.parse)。示例:
Uri.splitQueryString
Map<String, String>
String
int
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}
dxxyhpgq2#
如果x-www-form-urlencoded表单数据中没有重复的字段名,则使用Uri.splitQueryString是可行的。但是,如果您 * 确实 * 有重复字段,例如:
a=1234&a=5678&b=9876
你需要使用Uri(query: source).queryParametersAll。例如:
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'
2条答案
按热度按时间xiozqbni1#
您可以使用
Uri.splitQueryString
将x-www-form-urlencoded
查询字符串解析为Map<String, String>
。注意,键和值都是String
s,所以如果你想把一些值解释为int
s,你需要显式地解析它们(例如:int.parse
)。示例:
dxxyhpgq2#
如果
x-www-form-urlencoded
表单数据中没有重复的字段名,则使用Uri.splitQueryString
是可行的。但是,如果您 * 确实 * 有重复字段,例如:你需要使用
Uri(query: source).queryParametersAll
。例如: