Flutter:转义字符串中的美元符号“$”字符

Rod*_*ani 2 dart flutter

我在 Flutter 中的字符串上遇到了问题,特别是在包含“$”字符的 URL 中。

有什么办法可以摆脱美元符号吗$

var url = Uri.parse('https://olinda.bcb.gov.br/olinda/servico/Expectativas/versao/v1/odata/ExpectativaMercadoMensais?$top=100&$skip=0&$orderby=Data%20desc&$format=json&$select=Indicador,DataReferencia,Mediana,baseCalculo');
Run Code Online (Sandbox Code Playgroud)

lep*_*sch 6

Dart 有一种叫做字符串插值的东西。这是文档的片段:

要将表达式的值放入字符串中,请使用${expression}. 如果表达式是标识符,则可以省略{}.

以下是使用字符串插值的一些示例:

细绳 结果
'${3 + 2}' '5'
'${"word".toUpperCase()}' 'WORD'
'$myObject' myObject.toString() 的值

在您的情况下,URL 字符串恰好包含转义符号$以进行字符串插值。Dart 认为符号后面的所有单词$都是标识符(变量、函数等),但它没有发现它们在任何地方定义。要修复它,只需执行@jamesdlin建议的操作:转义$符号\$或在字符串r前面加上如下所示的前缀:

r'https://...Mensais?$top=100&$skip=0&$orderby=...'