我想用JSON制作数组,但我复制了同一篇文章。我正在为WordPress使用REST API JSON插件
有关 WP REST API的 更多信息:https : //v2.wp- api.org
这是我的 JSON 代码
[ { "id": 65, "date": "2014-08-24T18:56:26", "date_gmt": "2014-08-24T18:56:26", "guid": { "rendered": "http:\/\/********\/********\/?p=1" }, "modified": "2018-06-05T13:24:58", "modified_gmt": "2018-06-05T13:24:58", "slug": "this-url-wordpress", "status": "publish", "type": "post", "title": { "rendered": "\u2018 This a test title 1 \u2019" }, "content": { "rendered": "<p>This is a content 1</p>", "protected": false }, "excerpt": { "rendered": "<p>this a excerpt 1...<\/p>\n", "protected": false }, "author": 1, "featured_media": 468, "comment_status": "open", "ping_status": "open", "sticky": false, "template": "", "format": "standard", "meta": [ ], "categories": [ 14 ], "tags": [ 17, 18 ], }, { "id": 650, "date": "2014-08-24T18:56:26", "date_gmt": "2014-08-24T18:56:26", "guid": { "rendered": "http:\/\/********\/********\/?p=1" }, "modified": "2018-06-05T13:24:58", "modified_gmt": "2018-06-05T13:24:58", "slug": "this-url-wordpress", "status": "publish", "type": "post", "title": { "rendered": "\u2018 This a test title 2 \u2019" }, "content": { "rendered": "<p>This is a content 2</p>", "protected": false }, "excerpt": { "rendered": "<p>this a excerpt 2...<\/p>\n", "protected": false }, "author": 1, "featured_media": 468, "comment_status": "open", "ping_status": "open", "sticky": false, "template": "", "format": "standard", "meta": [ ], "categories": [ 14 ], "tags": [ 17, 18 ], }, { "id": 230, "date": "2014-08-24T18:56:26", "date_gmt": "2014-08-24T18:56:26", "guid": { "rendered": "http:\/\/********\/********\/?p=1" }, "modified": "2018-06-05T13:24:58", "modified_gmt": "2018-06-05T13:24:58", "slug": "this-url-wordpress", "status": "publish", "type": "post", "title": { "rendered": "\u2018 This a test title 3 \u2019" }, "content": { "rendered": "<p>This is a content 3</p>", "protected": false }, "excerpt": { "rendered": "<p>this a excerpt 3...<\/p>\n", "protected": false }, "author": 1, "featured_media": 468, "comment_status": "open", "ping_status": "open", "sticky": false, "template": "", "format": "standard", "meta": [ ], "categories": [ 14 ], "tags": [ 17, 18 ], }, ]
我的代码 :
import 'dart:async'; import 'package:flutter/material.dart'; import 'package:peluqueriafran/WebView.dart'; import 'dart:convert'; import 'package:http/http.dart' as http; Future<Post> fetchPost() async { final response = await http.get('http://**********:88/WordPress/wp-json/wp/v2/posts/'); final responseJson = json.decode(response.body); return new Post.fromJson(responseJson); } class Post { final int id; final String title; final String body; final String urlimagen; final String linkWeb; Post({this.id, this.title, this.body, this.urlimagen, this.linkWeb}); factory Post.fromJson(Map<String, dynamic> json) { return new Post( title: json['title']['rendered'].toString(), ); } }
网址:
应用:-选择最后生成的,我想获取所有帖子。 我希望有人能帮助我,谢谢
您可以更改fetchPost以返回帖子列表,例如:
fetchPost
Future<List<Post>> fetchPosts() async { http.Response response = await http.get('http://**********:88/WordPress/wp-json/wp/v2/posts/'); List responseJson = json.decode(response.body); return responseJson.map((m) => new Post.fromJson(m)).toList(); }
然后您可以Future<List<Post>>像这样利用:
Future<List<Post>>
@override Widget build(BuildContext context) { return new FutureBuilder<List<Post>>( future: fetchPosts(), builder: (context, snapshot) { if (!snapshot.hasData) return Container(); List<Post> posts = snapshot.data; return new ListView( children: posts.map((post) => Text(post.title)).toList(), ); }, ); }
ListView带有一个孩子列表,就像等Column。所以您可以使用任何包含孩子列表的小部件
ListView
Column