【问题标题】:How to parse any json file in Dart?如何解析 Dart 中的任何 json 文件?
【发布时间】:2021-10-20 22:26:22
【问题描述】:

是否可以有一个函数来读取具有任何结构的任何 json 文件?应用程序会读取不同的json数据,事先不知道,我需要有一个可以处理任何json文件的函数。

【问题讨论】:

  • 如果您的意思是将String 解析为dynamic 分层数据,则可以:json.decode() - 例如final decoded = json.decode('["foo", { "bar": 499 }]');

标签: json flutter dart


【解决方案1】:

使用dart_convert 库,您可以使用Map<String, dynamic> yourMap = jsonDecode(jsonString); 将json 字符串解析为映射

【讨论】:

    【解决方案2】:

    首先你应该构建一个 Json 模型,然后将其转换为对象

    Json:

    [{"code": 401,"message": "No data found"}]
    

    json 转模型:

    class ResponseModel {
     int code;
     String message;
     
      ResponseModel({this.code, this.message});
    
      ResponseModel.fromJson(Map<String, dynamic> json) {
       code = json['code'];
       message = json['message'];
      }
    
     Map<String, dynamic> toJson() {
      final Map<String, dynamic> data = new Map<String, dynamic>();
      data['code'] = this.code;
      data['message'] = this.message;
      return data;
     }
    }
    

    将 json 转换为对象列表

          List<ResponseModel> lists =                        List<ResponseModel>.from(json.decode(response.body).map((x) => ResponseModel.fromJson(x)));
    

    【讨论】:

    • 我不知道我得到的是哪个json模型。
    猜你喜欢
    • 2019-10-03
    • 2021-11-12
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 2018-04-07
    • 2020-11-25
    相关资源
    最近更新 更多