【发布时间】:2021-09-18 03:19:06
【问题描述】:
我是这个 http 和 JSON 世界的新手,所以我在陈述或命名某些术语时可能是错误的。我正在从 Udemy 获得一门课程,我正在尝试获取特定对象或该对象的属性。但无论我做什么,我仍在获取所有数据,而不是索引。
这是我的代码:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart';
class JsonParsingSimple extends StatefulWidget {
@override
_JsonParsingSimpleState createState() => _JsonParsingSimpleState();
}
class _JsonParsingSimpleState extends State<JsonParsingSimple> {
Future data;
@override
void initState() {
// TODO: implement initState
super.initState();
data = getData();
}
{...}
Future getData() async
{
Future data;
String url = "https://jsonplaceholder.typicode.com/posts";
Network network = Network(url);
data = network.fetchData();
data.then((value)
{
print(value[0]['title']); //this line still brings me every data like i'm writing *(value)*
});
return data;
}
}
class Network
{
final String url;
Network(this.url);
Future fetchData() async
{
print("$url");
Response response = await get(Uri.parse(url));
if(response.statusCode == 200)
{
print(response.body);
return json.decode(response.body);
}
else
{
print(response.statusCode);
}
}
}
print(value) 或 print(value[0]) 或 print(value[0]['id'])。他们都给了同样的东西。获取所有内容。
【问题讨论】:
-
Delete
print(response.body);如果您只需要 1 个帖子,那么您应该改用:https://jsonplaceholder.typicode.com/posts/<any_ID> -
@ΟυιλιαμΑρκευα 哈哈哈你是对的。我删除
print(response.body)行的那一刻,一切正常。谢谢。