Dart dio http 获取格式数组 WP Rest API

问题描述 投票:0回答:1

我正在使用 dio 从我的 wp rest api 获取 json 数据。如果从 wordpress 发帖,我会得到以下 json 格式。正如您所看到的,它是数组格式的。我如何将它更改为对象格式,例如 [0]、[1]、.. 不应该在数组中,而是在列表中,以便能够遍历 map 函数。我有一个封锁,真的想不通。

[{id: 6923, date: 2022-07-01T13:02:18, date_gmt: 2022-07-01T13:02:18, guid: {rendered: placehilder}, modified: 2022-07-01T13:02:19 , modified_gmt: 2022-07-01T13:02:19, slug: news, status: publish, type: post, link: placeholder, title: {rendered: News}]

更新 我对 http get 函数的响应是“Map”类型,但我需要在“List< dynamic >”中使用它来处理我的进一步流程。

wordpress flutter dart httprequest dio
1个回答
0
投票

似乎有问题的 Map 实际上是一个 JSON 对象,这让我想起了许多 dart 模型对象上的方法,这些方法将数据从 json 或从地图传输到对象,在其他情况下也传输到 json。 (有关真实代码的更多用例 - 在您的 IDE 中搜索Dart 数据类生成器 插件,因为它将帮助生成模型类中的方法)

可以使用谷歌搜索找到其他示例。 这里是一个简单的:

class User {
  final String name;
  final String email;

  User(this.name, this.email);

  User.fromJson(Map<String, dynamic> json)
      : name = json['name'],
        email = json['email'];

  Map<String, dynamic> toJson() => {
        'name': name,
        'email': email,
      };
}

List 对象上还有一个有趣的构造函数,它完全按照您的要求进行操作。您可以通过参考

Dart api reference
找到from构造函数。

const jsonArray = '''
    [{"text": "foo", "value": 1, "status": true},
    {"text": "bar", "value": 2, "status": false}]
    ''';
final List<dynamic> dynamicList = jsonDecode(jsonArray);
final List<Map<String, dynamic>> fooData =
    List.from(dynamicList.where((x) => x is Map && x['text'] == 'foo'));
print(fooData); // [{text: foo, value: 1, status: true}]
© www.soinside.com 2019 - 2024. All rights reserved.