first create a model class like this from api response
class Response {
List<Data>? data;
Response({this.data});
Response.fromJson(Map<String, dynamic> json) {
if (json['data'] != null) {
data = <Data>[];
json['data'].forEach((v) {
data!.add(new Data.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.data != null) {
data['data'] = this.data!.map((v) => v.toJson()).toList();
}
return data;
}
}
class Data {
int? sno;
String? userid;
String? postUrl;
String? contentType;
Data({this.sno, this.userid, this.postUrl, this.contentType});
Data.fromJson(Map<String, dynamic> json) {
sno = json['sno'];
userid = json['userid'];
postUrl = json['postUrl'];
contentType = json['contentType'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['sno'] = this.sno;
data['userid'] = this.userid;
data['postUrl'] = this.postUrl;
data['contentType'] = this.contentType;
return data;
}
}
then create stafull widget class
class ImageExample extends StatefulWidget {
const ImageExample({Key key}) : super(key: key);
@override
State<ImageExample> createState() => _ImageExampleState();
}
class _ImageExampleState extends State<ImageExample> {
ImageResponse imageResponse;
@override
Widget build(BuildContext context) {
return imageResponse != null
? ListView.builder(
shrinkWrap: true,
itemBuilder: (context, data) {
List<String> image = imageResponse.data[data].postUrl
.trim()
.replaceAll("[", "")
.replaceAll("]", "")
.replaceAll(" ", "")
.split("@");
return ListView.builder(
shrinkWrap: true,
itemCount: image.length,
itemBuilder: (context, index) {
return Image.network(
image[index],
height: 100,
width: 100,
);
});
},
itemCount: imageResponse.data.length,
)
: Container();
}
@override
void initState() {
apiCall();
super.initState();
}
Future<void> apiCall() async {
var response = await http.get(
Uri.parse('api')); // you http api address
setState(() {
final body = json.decode(response.body);
imageResponse = ImageResponse.fromJson(body);
});
}
}