dart - Dart将列表转换为JSON编码的映射条目

标签 dart

之前我曾问过question有关Dart编码/解码为JSON的信息,但是,建议的库并不完整,因此我决定手动进行处理。

目的是将这些对象转换为 map 。

class Parent extends Object {
   int id;
   String name;
   List<Child> listChild = new List<Child>();
   Map toMap() => {"id":id, "name":name, "listChild":listChild};
}

class Child extends Object {
   int id;
   String childName;
   Map toMap() => {"id":id, "childName":childName};   
}

做的时候

print(JSON.encode(parent.toMap()));

我看到它在这里,有什么建议如何使这项工作?

if (!stringifyJsonValue(object)) {
  checkCycle(object);
  try {
    var customJson = _toEncodable(object);
    if (!stringifyJsonValue(customJson)) {
      throw new JsonUnsupportedObjectError(object);
    }
    _removeSeen(object);
  } catch (e) {
    throw new JsonUnsupportedObjectError(object, cause : e);
  }
}
}

最佳答案

只需将Map toMap()重命名为Map toJson(),它将可以正常工作。 =)

void encode() {
    Parent p = new Parent();
    Child c1 = new Child();
    c1 ..id = 1 ..childName = "Alex";

    Child c2 = new Child();
    c2 ..id = 2 ..childName = "John";

    Child c3 = new Child();
    c3 ..id = 3 ..childName = "Jane";

    p ..id = 1 ..name = "Lisa" ..listChild = [c1,c2,c3];

    String json = JSON.encode(p);
    print(json);
}

class Parent extends Object {
    int id;
    String name;
    List<Child> listChild = new List<Child>();
    Map toJson() => {"id":id, "name":name, "listChild":listChild};
}

class Child extends Object {
    int id;
    String childName;
    Map toJson() => {"id":id, "childName":childName};   
}

关于dart - Dart将列表转换为JSON编码的映射条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25827194/

相关文章:

dart - 如何在 GridView flutter 中获取 GridTile 位置?

ios - 有没有人在 iOS flutter 上看到过 stripe_payments 的这个编译错误?

html - 使用文本和零初始宽度创建 html 按钮/标签

dart - 在该时间点不使用 `set`

dart - Flutter:将盒子阴影添加到透明容器

android - 如何在Flutter应用中创建启动屏幕

android - Flutter,如何在同一设备上发布和调试应用程序?

flutter - Pubspec.yaml 这个文件在 Flutter 中的作用

flutter - 动画期间按钮宽度不变

flutter - Flutter:[错误:flutter/lib/ui/ui_dart_state.cc(166)]未处理的异常