флаттер , моя проблема с выводом данных и php Json … Не могу решить эту проблему

#php #flutter #flutter-layout #flutter-web #flutter-test

Вопрос:

теперь, начиная с трех дней, и я пытаюсь заставить его работать (данные json и данные Flutter), кажется, все работает нормально, и я получил данные php json и декодирую их .. но все еще не могу понять, как динамически поместить его в строки, доступные для данных !!!

это основной код для обработки http-запроса и декодирования данных json

это данные json перед их декодированием ..

 {"results":[{"ID":"1","TYPE_ID":"11","TYPE":"REPORT","SUB":"GOING HOLIDAY","USER_ID":"11","CREATE_DATE":"2021-05-10"},{"ID":"2","TYPE_ID":"11","TYPE":"COMMENTS","SUB":"GOING
HOLIDAY","USER_ID":"11","CREATE_DATE":"2021-05-10"}]}
 

и это после того, как закодируете его

 {results: [{ID: 1, TYPE_ID: 11, TYPE: REPORT, SUB: GOING HOLIDAY, USER_ID: 11, CREATE_DATE: 2021-05-10}, {ID: 2, TYPE_ID: 11, TYPE: COMMENTS, SUB: GOING HOLIDAY, USER_ID: 11,CREATE_DATE: 2021-05-10}]}
 

функция для работы с http и json

 Future noti_table() async {
  try {
    var url = Uri.parse('192.168.1.111');
    http.Response response = await http.get(url);

    if (response.statusCode == 200) {
      //return response.body;
      // var data = json.decode(utf8.decode(response.bodyBytes));
      print(response.body);
      final responseJson = jsonDecode(response.body);
      print(responseJson);
      Sale sale = new Sale.fromJson(responseJson);
      return sale;
      //print("Result: ${sale.results}");
      //return sale;
    }
  } catch (e) {
    print(e);
    return null;
  }
}
 

класс для работы со структурой json

 class Sale {
  final List<Results> results;

  Sale({this.results});
  factory Sale.fromJson(Map<String, dynamic> json) {
    return Sale(
      results: parsedResult(json),
    );
  }
  static List<Results> parsedResult(resultJson) {
    var list = resultJson['results'] as List;
    List<Results> resultList =
        list.map((data) => Results.fromJson(data)).toList();
    return resultList;
  }
}

class Results {
  final String id;
  final String type;
  Results({this.id, this.type});
  factory Results.fromJson(Map<String, dynamic> json) {
    //print(json['TYPE']);
    return Results(
      id: json['ID'],
      type: json['TYPE'],
    );
  }
}
 

note please , for now i only want to show ID, and Type.

   Future get_table_info() async {
    var output = await noti_table();
    return output;
  }
 

and this code for view that datatable using FutureBuilder , the issue code » return SingleChildScrollView(»

  Widget build(BuildContext context) {
    return Container(
      child: FutureBuilder(
        future: get_table_info(),
        builder: (BuildContext context, AsyncSnapshot snapshot) {
          if (snapshot.data == null) {
            return Container(child: Center(child: CircularProgressIndicator()));
          } else {
            return SingleChildScrollView(
              scrollDirection: Axis.horizontal,
              child: SingleChildScrollView(
                child: DataTable(
                  columns: [
                    DataColumn(label: Text('ID'), tooltip: 'ID'),
                    DataColumn(label: Text('Type'), tooltip: 'Type'),
                  ],
                  rows: snapshot.data
                      .map((data) =>
                          // we return a DataRow every time
                          DataRow(
                              // List<DataCell> cells is required in every row
                              cells: [
                                DataCell(Text('HOW TO show id HER')),
                                DataCell(Text('HOW TO show TYPE HER')),
                              ]))
                      .toList(),
                ),
              ),
            );
          }
        },
      ),
    );
  }
 

error i receive after start using Future builder .. .

 ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building FutureBuilder<dynamic>(dirty, state:
_FutureBuilderState<dynamic>#6bf96):
'map'
Dynamic call of null.
Receiver: Instance of 'Sale'
Arguments: [Instance of '(dynamic) => DataRow']

The relevant error-causing widget was:
  FutureBuilder<dynamic>
  file:///C:/Users/dhd20/Desktop/2022/op web/flutter_application_1/lib/screens/NotiTable.dart:29:14

When the exception was thrown, this was the stack:
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49      throw_
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 721:3   defaultNoSuchMethod
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 61:12                 noSuchMethod
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 716:31  noSuchMethod
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 270:9   _checkAndCall
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 388:10  callMethod
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 392:5   dsend
packages/flutter_application_1/screens/NotiTable.dart 78:10                                                                    <fn>
packages/flutter/src/widgets/async.dart 773:48                                                                                 build
packages/flutter/src/widgets/framework.dart 4612:27                                                                            build
packages/flutter/src/widgets/framework.dart 4495:15                                                                            performRebuild
packages/flutter/src/widgets/framework.dart 4667:11                                                                            performRebuild
packages/flutter/src/widgets/framework.dart 4189:5                                                                             rebuild
packages/flutter/src/widgets/framework.dart 2694:31                                                                            buildScope
packages/flutter/src/widgets/binding.dart 873:9                                                                                drawFrame
packages/flutter/src/rendering/binding.dart 319:5                                                                              [_handlePersistentFrameCallback]
packages/flutter/src/scheduler/binding.dart 1144:15                                                                            [_invokeFrameCallback]
packages/flutter/src/scheduler/binding.dart 1082:9                                                                             handleDrawFrame
packages/flutter/src/scheduler/binding.dart 998:5                                                                              [_handleDrawFrame]
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/platform_dispatcher.dart 896:13                invoke
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/platform_dispatcher.dart 145:5                 invokeOnDrawFrame
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine.dart 259:45                                    <fn>

════════════════════════════════════════════════════════════════════════════════════════════════════
 

как можно отобразить тип , идентификатор в строках и отключить этот вопрос красным цветом ..

любые советы приветствуются

с уважением