我有一个调用json字符串数组的API,如下所示:
[
"006.01.01",
"006.01.01 1090",
"006.01.01 1090 1090.950",
"006.01.01 1090 1090.950 052",
"006.01.01 1090 1090.950 052 A",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 B",
"006.01.01 1090 1090.950 052 B 521211",
"006.01.01 1090 1090.950 052 B 521211",
"006.01.01 1090 1090.994",
"006.01.01 1090 1090.994 001",
"006.01.01 1090 1090.994 001 A",
"006.01.01 1090 1090.994 001 A 511111",
"006.01.01 1090 1090.994 001 A 511111",
"006.01.01 1090 1090.994 001 A 511111",
"006.01.01 1090 1090.994 001 A 511111"
]
Run Code Online (Sandbox Code Playgroud)
我打算将json转换为飞镖列表。我尝试了以下脚本:
json.decode(response.body).cast<List<String>();
Run Code Online (Sandbox Code Playgroud)
但是它不起作用,脚本应该如何正确?
vis*_*hwa 14
将 Json 数据转换为列表
List<String> data = [
"006.01.01",
"006.01.01 1090",
"006.01.01 1090 1090.950",
"006.01.01 1090 1090.950 052",
"006.01.01 1090 1090.950 052 A",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 A 521219",
"006.01.01 1090 1090.950 052 B",
"006.01.01 1090 1090.950 052 B 521211",
"006.01.01 1090 1090.950 052 B 521211",
"006.01.01 1090 1090.994",
"006.01.01 1090 1090.994 001",
"006.01.01 1090 1090.994 001 A",
"006.01.01 1090 1090.994 001 A 511111",
"006.01.01 1090 1090.994 001 A 511111",
"006.01.01 1090 1090.994 001 A 511111",
"006.01.01 1090 1090.994 001 A 511111"
];
//your json string
String jsonString = json.encode(data);
//convert json string to list
List<String> newData = List<String>.from(json.decode(jsonString));
Run Code Online (Sandbox Code Playgroud)
解析JSON列表的结果是List<dynamic>。的返回类型jsonDecode为dynamic。
您可以将这样的列表转换List<String>为
List<String> stringList = (jsonDecode(input) as List<dynamic>).cast<String>();
Run Code Online (Sandbox Code Playgroud)
您也可以将其用作List<dynamic>,然后将每个值分配给String:
List<dynamic> rellyAStringList = jsonDecode(input);
for (String string in reallyAStringList) { ... }
Run Code Online (Sandbox Code Playgroud)
效果大致相同-从列表中取出每个元素时,将检查每个元素是否为字符串。