I'm new in this http and JSON world, so I may be wrong on stating or naming some terms. I'm getting a course from Udemy and I'm trying to get a specific object or that object's property. But whatever I do, I'm still fetching all the data, instead of an index.
Here's my code:
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) or print(value[0]) or print(value[0]['id']). They're all giving the same. Fetching everything.
print(response.body);If you need 1 post only then you should use:https://jsonplaceholder.typicode.com/posts/<any_ID>insteadprint(response.body)line, everything worked fine. Thanks.