在等待Future<Map<String, T>>
之后加载资产非常容易。将文件嵌入程序代码中更加容易。
import 'dart:convert' as JSON;
void main() {
var jsonStr = """{ "en": "Greetings, World!", "cn": "你好,世界!" }""";
final json = JSON.jsonDecode(jsonStr);
print(json.length);
}
但是假设我压缩和uuencode file.json.gz file.json.gz
上面的 JSON 字符串,获得:
begin 644 file.json.gz
M'XL("#1&\F```V9I;&4N:G-O;@"K5E!*S5.R4E!R+TI-+<G,2R_640C/+\I)
G453245!*!DL]V;O@Z=*][_?T/-DQ[?G4'D4EA5HN`+"N/9PX````
`
end
然后将结果嵌入代码中:
import 'dart:convert' as JSON;
void main() {
var str = """ M'XL("#1&\F```V9I;&4N:G-O;@"K5E!*S5.R4E!R+TI-+<G,2R_640C/+\I)
G453245!*!DL]V;O@Z=*][_?T/-DQ[?G4'D4EA5HN`+"N/9PX````
`""";
...
}
我如何对 Dart 中的 uuencoded 字符串进行 uudecode?
现代化到 base64
正如 jamesdlin 非常详细的答案所暗示的那样(尽管答案处理uuencode
),使用 base64 是优越的,并且仍然可以通过uuencode
使用-m
switch 来获得。
> uuencode -m file.json.gz file.json.gz
begin-base64 644 file.json.gz
H4sICH6y8mAAA2ZpbGUuanNvbgCrVlBKzVOyUlByL0pNLcnMSy/WUQjPL8pJUVTSUVBKBks92bvg
6dK97/f0PNkx7fnUHkUlhVouALCuPZw4AAAA
====
在这种情况下,我们可以使用base64Decode
from dart:convert
。
void main() {
var str = """begin-base64 644 file.json.gz
H4sICH6y8mAAA2ZpbGUuanNvbgCrVlBKzVOyUlByL0pNLcnMSy/WUQjPL8pJUVTSUVBKBks92bvg
6dK97/f0PNkx7fnUHkUlhVouALCuPZw4AAAA
====""";
...
}