将JSON数据存储在DB中的一个字段中,并在Flatter应用程序中使用它

将JSON数据存储在DB中的一个字段中,并在Flatter应用程序中使用它,json,flutter,dart,Json,Flutter,Dart,我有一些数据要存储在DB中,这是我存储在数据库中名为“详细信息”的字段中的数据: 因此,当我获取该表数据并将其编码为API时,它如下所示: . . . "id": 1, "details": " [\r\n {\r\n \"id\": 1,\r\n \"name\": \"name1\"\r\n },\r\n {\r\n\t\"id\": 1,\r\n \"name\": \"name1\"\r\n },\r\n {\r\n\t\"id\": 1,\

我有一些数据要存储在DB中,这是我存储在数据库中名为“详细信息”的字段中的数据:

因此,当我获取该表数据并将其编码为API时,它如下所示:

   .
   .
   .
"id": 1,
"details": " [\r\n  {\r\n    \"id\": 1,\r\n    \"name\": \"name1\"\r\n  },\r\n  {\r\n\t\"id\": 1,\r\n    \"name\": \"name1\"\r\n  },\r\n  {\r\n\t\"id\": 1,\r\n    \"name\": \"name1\"\r\n  }\r\n]\r\n",
   .
   .
   .
我不知道如何获取“细节”数据并在我的颤振应用程序中使用它。这是我到目前为止尝试过的模型,但不起作用:

import 'dart:convert';

class MyModel {
    int _id;
    DetailModel _details;

  MyModel(game) {
      _id = game['id'];
      _details = DetailModel.fromJson(json.encode(game['details']));
  }

  int get id => _id;
    DetailModel get details => _details;
}

class DetailModel {
  List<DetailM> _details = [];

  DetailModel.fromJson(Map<dynamic, dynamic> parsedJson) {
    List<DetailM> temp = [];
    for (int i = 0; i < parsedJson['details'].length; i++) {
      DetailM detail = DetailM(parsedJson['details'][i]);
      temp.add(detail);
    }
    _details = temp;
  }

  List<DetailM> get details => _details;
}

class DetailM {
    int _id;
    String _name;

  DetailM(detail) {
      _id = detail['id'];
      _name = detail['name'];
  }

    int get id => _id;
    String get name => _name;
}
导入'dart:convert';
类MyModel{
内部id;
DetailModel\u细节;
MyModel(游戏){
_id=游戏['id'];
_details=DetailModel.fromJson(json.encode(game['details']);
}
int get id=>\u id;
DetailModel get details=>\u details;
}
类细节模型{
列表_详细信息=[];
fromJson(Map parsedJson){
列表温度=[];
for(int i=0;i\u详细信息;
}
类详细信息{
内部id;
字符串\u名称;
DetailM(细节){
_id=详细信息['id'];
_名称=详细信息['name'];
}
int get id=>\u id;
字符串get name=>\u name;
}
我在这里得到的错误是:

Error: The argument type 'String' can't be assigned to the parameter type 'Map<dynamic, dynamic>'.
错误:无法将参数类型“String”分配给参数类型“Map”。
json.encode()返回字符串

试一试


将其作为map传递。fromJsonexpect
map
作为一个参数,但正如您所看到的
game['details']
是一个字符串没有部分显示game['details']是一个字符串,但如果是,我将更新响应
Error: The argument type 'String' can't be assigned to the parameter type 'Map<dynamic, dynamic>'.
_details = DetailModel.fromJson(json.decode(game['details']));