为了账号安全,请及时绑定邮箱和手机立即绑定

在 Flutter 中获取 pHp 数组或地图作为 JSON 数据?

在 Flutter 中获取 pHp 数组或地图作为 JSON 数据?

PHP
萧十郎 2023-04-28 16:35:44
我正在尝试在我的 flutter 应用程序中使用 json 从服务器获取一些数据。这是我正在使用的功能。List<String> userFriendList = ["No Friends"];  Future<http.Response> _fetchSampleData() {            return http.get('//link/to/server/fetcher/test_fetcher.php');}Future<void> getDataFromServer() async {            final response = await _fetchSampleData();            if (response.statusCode == 200) {              Map<String, dynamic> data = json.decode(response.body);                    userLvl = data["lvl"].toString();                userName = data["name"];                userFriendList = List();                userFriendList = data["friendlist"];              } else {              // If the server did not return a 200 OK response,              // then throw an exception.              print('Failed to load data from server');            }}我明白usrLvl了userName。但是对于userFriendList,我收到以下错误:[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'List<String>'服务器端代码(test_fetcher.php):<?php    $myObj->name = "JohnDoe";    $myObj->lvl = 24;    $friends = array("KumarVishant", "DadaMuni", "BabuBhatt", "BesuraGayak", "BabluKaneria", "MorrisAbhishek", "GoodLuckBaba", "ViratKohli", "LeanderPaes");    $myObj->friendlist = $friends;    header('Content-Type: application/json');    $myJSON = json_encode($myObj);    echo $myJSON;?>
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

这是一个转换错误:List<dynamic> != List<String>

您可以通过多种方式转换/投射您的列表。

我建议你使用这个库来简化你的 json / Dart 对象转

json_serializable 将生成转换方法(fromJson 和 toJson)并处理所有事情。

它比手动操作更容易、更安全。


查看完整回答
反对 回复 2023-04-28
?
跃然一笑

TA贡献1826条经验 获得超6个赞

错误解释了它。从服务器 api 获取的数据被解码为 typeList<dynamic>并且您将 userFriendList 声明为 type List<String>。您需要做的是将 userFriendList 的类型从

List<String> userFriendList = ["No Friends"];

到:

List<dynamic> userFriendList = [];


查看完整回答
反对 回复 2023-04-28
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

正是错误所说的。userFriendList 是 List 类型,您将其作为 List。

List<String> userFriendList = ["No Friends"];

应该

List<dynamic> userFriendList = [];

如果这对您不起作用,或者完全不同的列表。


查看完整回答
反对 回复 2023-04-28
  • 3 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信