【问题标题】:How do encode the json a flutter/dart application如何将 json 编码为颤振/飞镖应用程序
【发布时间】:2019-09-03 19:16:17
【问题描述】:

我是 Flutter 的新手。我能够自学如何使用 JSON 文件。现在我希望能够通过按钮在正确和错误之间切换布尔值。在这里我不能再进一步了。

我已经浏览了flutter.dev上给出的文档

我不明白这部分以及如何应用这个String json = jsonEncode(user);

代码:

class Daten {
  final String name;

  final bool toggle;

  Daten(this.name, this.toggle);

  Daten.fromJson(Map<String, dynamic> json) :
   name = json['name'],
   toggle = json['toggle'];

   Map<String, dynamic> toJson() =>
   {
     'name': name,
     'toggle' : toggle,
   };
}

json:
[
{
    "name": "Test1",  
    "toggle": "false"
  },
  ...
]

main:

  Future loadTextList() async {
    String content = await rootBundle.loadString('load_json/data.json');
    List collection = json.decode(content);
    List<Daten> _daten = collection.map((json) => Daten.fromJson(json)).toList();
 ...
 ListView.builder(
        ...
              child: Text("Toggle"),
              onPressed: (){
              },  
      )

【问题讨论】:

    标签: flutter flutter-test


    【解决方案1】:

    您可以将 JSON 粘贴到 https://app.quicktype.io/,它会生成正确的语法进行解析。

    您的示例 JSON

    [
        {
            "name": "Test1",  
            "toggle": false
        },
        {
            "name": "Test2",  
            "toggle": true
        }
    ]
    

    类和解析功能
    要从您的日期列表中获取 JSON 字符串,您可以使用函数 datenToJson

    // To parse this JSON data, do
    //
    //     final daten = datenFromJson(jsonString);
    
    import 'dart:convert';
    
    List<Daten> datenFromJson(String str) => new List<Daten>.from(json.decode(str).map((x) => Daten.fromJson(x)));
    
    String datenToJson(List<Daten> data) => json.encode(new List<dynamic>.from(data.map((x) => x.toJson())));
    
    class Daten {
        String name;
        bool toggle;
    
        Daten({
            this.name,
            this.toggle,
        });
    
        factory Daten.fromJson(Map<String, dynamic> json) => new Daten(
            name: json["name"],
            toggle: json["toggle"],
        );
    
        Map<String, dynamic> toJson() => {
            "name": name,
            "toggle": toggle,
        };
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-25
      • 1970-01-01
      • 2023-03-05
      • 2020-09-12
      • 2017-11-26
      • 2019-07-27
      • 2019-02-05
      • 1970-01-01
      • 2021-03-11
      相关资源
      最近更新 更多