这是来自请求的响应。
var response = [{"id":4731},{"id":4566},{"id":4336},{"id":4333},{"id":4172},{"id":4170},{"id":4168},{"id":4166},{"id":4163},{"id":4161}];
如何使用flutter提取ID并将其存储在int列表中。 我已经尝试过此代码,但是无法正常工作。
Future<List<int>> fetchTopIds() async{
final response = await client.get('$_baseUrl/posts?fields=id');
final ids = json.decode(response.body);
return ids.cast<int>();
}
答案 0 :(得分:0)
这应该做您想要的:
var intIds = ids.map<int>((m) => m['id'] as int).toList();
答案 1 :(得分:0)
这是当我收到“对象数组”作为响应时所做的事情(我知道我来晚了,但这会帮助下一个人)
List list = json.decode(response.body);
if (response.body.contains("id")) {
var lst = new List(list.length);
for (int i = 0; i < list.length; i++) {
var idValue = list[i]['id'];
print(idValuee);
}
答案 2 :(得分:0)
在这里,我附上了一个完整的示例,该示例将列表转换为JSON,然后从该JSON检索列表。
import 'dart:convert';
void main() {
List<int> a= [1,2,3]; //List of Integer
var json= jsonEncode(a); //json Encoded to String
print(json.runtimeType.toString());
var dec= jsonDecode(json); //Json Decoded to array of dynamic object
print(dec.runtimeType.toString());
a= (dec as List).map((t)=> t as int).toList(); //dynamic array mapped to integer List
print(a);
}
答案 3 :(得分:0)
我找到了一种更好、更简单的方法来从 JSON 数组中获取所需的信息/数据。
参考https://pub.dev/packages/http/example了解更多
快速入门的代码:
void main(List<String> arguments) async {
var url = 'ENTER YOUR API ENDPOINT';
var response = await http.get(url);
var jsonResponse = convert.jsonDecode(response.body);
var itemCount = jsonResponse['totalItems'];
print('Number of books about http: $itemCount.');
这里 'totalItems' 将是您想要的键。这仅在您收到 response.statusCode == 200 时才有效