如何从服务器上的 php 文件中获取 json 数据到 Flutter 应用程序

     2023-02-23     89

关键词:

【中文标题】如何从服务器上的 php 文件中获取 json 数据到 Flutter 应用程序【英文标题】:How to get the json data from a php file on the server to the flutter app 【发布时间】:2019-11-04 23:22:15 【问题描述】:

我的大学服务器上托管了一个 php 文件,当我在服务器上运行此文件时,它运行良好。运行链接http://www.alkadhum-col.edu.iq/Teachers%20Activities/get.php 中的php 文件后,我可以获取json 数据,但是当我在应用程序屏幕上颤振尝试时无法获取。

首先,我尝试更改网址不起作用。其次,我试图将 json 对象转换为 .toString() 并且也不起作用。

import 'package:flutter/material.dart';
import 'package:http/http.dart' show get;
import 'dart:convert';

class Post 
  String name;
  String msg;
  String day;
  String date;

  Post(this.name, this.msg, this.day, this.date);

  factory Post.fromJson(Map<String, dynamic> json) 
    return Post(
      name: json['name'].toString(),
      msg: json['msg'].toString(),
      day: json['day'].toString(),
      date: json['date'].toString(),
    );
  


class CustomListView extends StatelessWidget 

  List teachers = [];

  CustomListView(this.teachers);

  @override
  Widget build(BuildContext context) 
    return (
      ListView.builder(
        itemCount: teachers.length, 
        itemBuilder: (BuildContext context, int index) 
          return createviewItem(teachers[index], context);
        ,
      )
    );
  

  Widget createviewItem(Post teachers, BuildContext context) 
    return ListTile(
      title: new Card(
        child: new Container(
          decoration: BoxDecoration(border: Border.all(color: Colors.lightBlue)),
          padding: EdgeInsets.all(20.0),
          margin: EdgeInsets.all(20.0),
          child: Column(children: <Widget>[
            new Text(teachers.name),
            new Text(teachers.msg),
            new Text(teachers.day),
            new Text(teachers.date)
          ],),
        )
      )
    );
  




Future<List<Post>> downloadJSON() async 
  final jsonEndpoint = "http://www.alkadhum-col.edu.iq/Teachers%20Activities/get.php";
  final response = await get(jsonEndpoint);
  if (response.statusCode == 200) 
    List teachers = json.decode(response.body);
    return teachers.map(
      (teacher) => new Post.fromJson(teacher)
    ).toList();
  

  else 
    throw Exception("Unable to get JSON data");
  



class MyApp extends StatelessWidget 
  @override
  Widget build(BuildContext context) 
    return new MaterialApp(
    theme: new ThemeData(
    primarySwatch: Colors.deepOrange,
    ),
    home: new Scaffold(
    appBar: new AppBar(title: const Text('Flutter and PHP')),
    body: new Center(

    child: new FutureBuilder<List<Post>>(
    future: downloadJSON(),

    builder: (context, snapshot) 
    if (snapshot.hasData) 
    List<Post> teachers = snapshot.data;
    return new CustomListView(teachers);
     else if (snapshot.hasError) 
    return Text('$snapshot.error');
    
    //return  a circular progress indicator.
    return new CircularProgressIndicator();
    ,
    ),
    ),
    ),
    );


void main() 
runApp(MyApp());

我收到格式异常:意外字符(在字符 115 处)和一些数据出现在列表中,而不是字符串形式。

【问题讨论】:

不用数据模型也行 您正在使用您创建的名为 Post 的类对 json 数据进行建模 是的,但是如何让它工作 var data = jsonDecode(jsonData);打印(数据['someData']); 我已经这样做了。我的问题是如何在我的应用屏幕上打印它们?。 【参考方案1】:

问题是你的数据不是 JSON 数据。

[
  
    "name": "م.م علي ستار باراني",
    "msg": "امتحان مادة قواعد البيانات اول جابترين ",
    "day": "السبت",
    "date": "2019-06-20"
  
][
  
    "name": "م. امجد عباس التميمي",
    "msg": "امتحان مادة هندسة البرامجيات اول فصلين",
    "day": "الاحد",
    "date": "2019-06-21"
  ,
  
    "name": "م.م علي ستار باراني",
    "msg": "امتحان مادة قواعد البيانات اول جابترين ",
    "day": "السبت",
    "date": "2019-06-20"
  
]

问题在这两个括号中:

][

JSON 代码应该是这样的。

[
  
    "name": "م.م علي ستار باراني",
    "msg": "امتحان مادة قواعد البيانات اول جابترين ",
    "day": "السبت",
    "date": "2019-06-20"
  ,
  
    "name": "م. امجد عباس التميمي",
    "msg": "امتحان مادة هندسة البرامجيات اول فصلين",
    "day": "الاحد",
    "date": "2019-06-21"
  ,
  
    "name": "م.م علي ستار باراني",
    "msg": "امتحان مادة قواعد البيانات اول جابترين ",
    "day": "السبت",
    "date": "2019-06-20"
  
]

【讨论】:

如何在 TypeScript 中获取 JSON 文件上的 Object.keys 时设置类型?

】如何在TypeScript中获取JSON文件上的Object.keys时设置类型?【英文标题】:HowdoyousettypesongettingObject.keysonJSONfileinTypeScript?【发布时间】:2021-04-0316:18:21【问题描述】:我正在尝试从JSON文件中访问一个对象,但出现了错误:Elementimpl... 查看详情

如何从我网站上的所有 php 文件中删除 iframe 病毒

...我有一个关于从我的php文件中删除病毒代码的问题。我的服务器中有1200多个php文件,每个php文件都被病毒感染。病毒代码将此行添加到html输出这里是病毒代码:<tag5479347351& 查看详情

如何从 Angular 4 中的 JSON 文件中获取 json 数据

】如何从Angular4中的JSON文件中获取json数据【英文标题】:HowtofetchjsondatafromJSONfileinangular4【发布时间】:2018-06-1918:56:06【问题描述】:我正在做一个项目,我希望在其中拥有JSON文件资产文件夹。我创建服务和组件。1-资产文件夹... 查看详情

如何从 MAMP 服务器添加图像 php 文件

】如何从MAMP服务器添加图像php文件【英文标题】:HowtoaddimagephpfilefromMAMPserver【发布时间】:2016-09-2804:32:50【问题描述】:我正在尝试在MAMP服务器表中添加图像并在PHP中获取它,然后创建json。但我不知道如何在表格中添加图像... 查看详情

如何从 php 获取数据表 jquery 插件的 json 数据

】如何从php获取数据表jquery插件的json数据【英文标题】:Howtofetchjsondatafromphpfordatatablesjqueryplugin【发布时间】:2016-02-0316:52:56【问题描述】:我对PHP非常陌生,我正在尝试使用DatatablesjQuery插件。我知道我必须从.php文件中获取我... 查看详情

从 Angular 范围的 php 文件中获取 json 数据

】从Angular范围的php文件中获取json数据【英文标题】:GETjsondatafromaphpfileforanAngularscope【发布时间】:2014-09-2317:35:15【问题描述】:我正在尝试从php文件中获取json数据以在Angular控制器中使用。我在php文件中回显json_encode(pg_fetch_asso... 查看详情

如何从 PHP 中获取 JSON 值?

】如何从PHP中获取JSON值?【英文标题】:HowtogetJSONvaluefromPHP?【发布时间】:2021-06-1711:17:26【问题描述】:我正在尝试从PHP获取JSON值,但如果其中一个属性值包含正斜杠“/”,则会失败(我正在使用GET来发送此特定场景的数据... 查看详情

PHP:如何从 JSON 中获取变量(从 Swift iOS 应用程序发送)并以 JSON 响应

】PHP:如何从JSON中获取变量(从SwiftiOS应用程序发送)并以JSON响应【英文标题】:PHP:howtogetvariablesfromaJSON(sentfromaSwiftiOSapp)andrespondwithaJSON【发布时间】:2015-05-1408:24:12【问题描述】:我正在使用Swift开发一个iOS应用程序,它应该... 查看详情

如何从原始文件夹中获取 json 文件?

】如何从原始文件夹中获取json文件?【英文标题】:Howtogetajsonfilefromrawfolder?【发布时间】:2015-12-0717:59:00【问题描述】:我想使用原始文件夹中的user.json来获取新文件://readfromfile,convertittouserclassUseruser=mapper.readValue(newFile(**R.raw... 查看详情

如何从 Icloud Swift 上的文件中获取数据

】如何从IcloudSwift上的文件中获取数据【英文标题】:HowtogetthedatafromfileonIcloudSwift【发布时间】:2016-10-1222:17:12【问题描述】:我正在创建一个从Icloud获取文件并将其转换为b64格式字符串的应用程序,但我遇到了一个问题:我真... 查看详情

从 MYSQL 获取数据并显示在 JSON 文件中

...我知道其他方法,但我需要专门使用JSON)。问题是,我如何从我的mysql数据库中获取数据并将其写入JSON格式的文件(最好使用PHP)。任何链接、教程或 查看详情

如何使用 getJSON 从文件中获取 JSON 数组?

】如何使用getJSON从文件中获取JSON数组?【英文标题】:HowtogetJSONarrayfromfilewithgetJSON?【发布时间】:2013-02-0117:46:42【问题描述】:如何使用javascript和jquery获取json文件的数组json我正在尝试下一个代码,但它不起作用:varquestions=[]... 查看详情

如何使用angularjs从json文件中获取数据

】如何使用angularjs从json文件中获取数据【英文标题】:howtogetdatafromjsonfileusingangularjs【发布时间】:2014-09-0615:39:13【问题描述】:我正在从json文件中获取数据以显示在表格中,但只有第一次我从getdata()获取数据时,下一次出现... 查看详情

如何从 JSON 文件中随机获取并将其呈现为 FlatList?

】如何从JSON文件中随机获取并将其呈现为FlatList?【英文标题】:HowtorandomlyfetchfromaJSONfileandrenderitintoaFlatList?【发布时间】:2019-11-2902:03:49【问题描述】:我有一个从JSON文件中获取数据的应用程序。问题是,它从上到下获取数据... 查看详情

从 json 文件(php)登录检查用户和密码。如何从json文件中读取文件

】从json文件(php)登录检查用户和密码。如何从json文件中读取文件【英文标题】:Loginchecksuserandpassowrdfromjsonfile(php).Howtoreadfilefromjsonfile【发布时间】:2021-12-3104:44:55【问题描述】:我有一个问题,只是让我出错重试,它不检查j... 查看详情

如何从 PHP 中获取远程 JSON 或 XML API 数据并将返回对象分配为 PHP 变量?

】如何从PHP中获取远程JSON或XMLAPI数据并将返回对象分配为PHP变量?【英文标题】:HowtoGETremoteJSONorXMLAPIdatafromwithinPHPandassignareturnobjectasPHPvariable?【发布时间】:2012-05-1615:09:32【问题描述】:我在做什么:我正在用PHP编写一个自定... 查看详情

如何从Json数组中获取具体信息

】如何从Json数组中获取具体信息【英文标题】:HowtoobtainspecificinformationfromtheJsonarray【发布时间】:2021-10-2012:24:50【问题描述】:我在日志中获取了这个数组,我如何获取地区数据(黄色粗体)。链接上的图片(无法添加图片)i... 查看详情

将数据从 MYSQL 导入网络服务器上的 JSON 文件

】将数据从MYSQL导入网络服务器上的JSON文件【英文标题】:ImportingdatafromMYSQLtoJSONfileonwebserver【发布时间】:2016-12-2616:33:55【问题描述】:我有一个问题:我在RaspberryPi上设置了本地LAMPWebServer。在那里(http://ipaddress/inpData)可以输入... 查看详情