从flatter/Dart中的JSON数组中提取数据
这是来自请求的响应从flatter/Dart中的JSON数组中提取数据,json,parsing,dart,flutter,Json,Parsing,Dart,Flutter,这是来自请求的响应 var response = [{"id":4731},{"id":4566},{"id":4336},{"id":4333},{"id":4172},{"id":4170},{"id":4168},{"id":4166},{"id":4163},{"id":4161}]; 如何使用flatter提取ID并存储在int列表中。 我已经尝试过这个代码,但不起作用 Future<List<int>> fetchTopIds() async{
var response = [{"id":4731},{"id":4566},{"id":4336},{"id":4333},{"id":4172},{"id":4170},{"id":4168},{"id":4166},{"id":4163},{"id":4161}];
如何使用flatter提取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>();
}
Future fetchTopIds()异步{
最终响应=wait client.get(“$\u baseUrl/posts?fields=id”);
最终id=json.decode(response.body);
返回id.cast();
}
这应该满足您的要求:
var intIds = ids.map<int>((m) => m['id'] as int).toList();
var intIds=ids.map((m)=>m['id']as int.toList();
当我得到“对象数组”作为响应时,我就是这么做的(我知道我迟到了。但这会帮助下一个人)
List List=json.decode(response.body);
if(response.body.contains(“id”)){
var lst=新列表(List.length);
for(int i=0;i
这里我附上了一个将列表转换为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);
}
导入'dart:convert';
void main(){
列表a=[1,2,3];//整数列表
var json=jsonEncode(a);//编码为字符串的json
打印(json.runtimeType.toString());
var dec=jsonDecode(json);//解码为动态对象数组的json
打印(dec.runtimeType.toString());
a=(dec as List).map((t)=>t as int).toList();//映射到整数列表的动态数组
印刷品(a);
}
我找到了一种更好、更简单的方法从JSON数组中获取所需信息/数据
参考以了解更多信息
快速启动的代码:
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.');
void主(列表参数)异步{
var url='输入您的API端点';
var response=wait http.get(url);
var jsonResponse=convert.jsonDecode(response.body);
var itemCount=jsonResponse['totalItems'];
print('http:$itemCount.');
这里的“totalItems”将是您所需的键。这仅在您得到响应时起作用。statusCode==200谢谢,但这会显示未定义方法映射的错误。我想我在您的代码中混淆了一些内容。请检查我更新的答案。但这不会将JSON反序列化为list对象。项计数不是唯一的错误但如果你有一个json对象{“book_name”:“book1”、“author_name”、“author1”}。你可以访问“book_name”的值和“author_name”的值,即“book1”和“author1”分别是。是的,但问题是将JSON对象和具有
id
字段的对象数组转换为相同id
s的列表,而不是如何访问单个对象属性。本youtube教程可能会帮助您实现所需目标,因此不是论坛,因此提供指向某些youtube教程的链接是没有用的,尤其是在n代码片段提供了一个很好的答案。我不需要完成某些事情,提问者要求完成非常精确的任务,并希望得到问题的答案,但这与OP的任务无关。您可以查看本文以了解更多信息:。
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.');