首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JS对象转换为Dart类

将JS对象转换为Dart类
EN

Stack Overflow用户
提问于 2014-04-11 19:46:38
回答 1查看 1K关注 0票数 1

将对象从Javascript转换为其Dart类计数器部件的最佳模式是什么?

代码语言:javascript
复制
// car.dart
import 'part.dart';
class Car {
  String paintColor;
  List<Part> parts;
}

// part.dart
class Part {
  String name;
  String SKU;
}

// main.dart
import 'dart:html';
import 'dart:js';

import 'car.dart';

void main() {
  var body = document.querySelector('body');
  body.addEventListener('carSelect', loadCarHandler, false);
}

void loadCarHandler(event) {

  // this is the contents of a CustomEvent from outside dart
  // goal is to convert it into Car and Parts
  LinkedHashMap obj = event.detail;

  /*
  this is what the `obj` looks like inside the debugger
  obj = _LinkedHashMap
    :paintColor = 'Red'
    :parts = List[2]
      0 = _LinkedHashMap
        :name = 'Wheel'
        :SKU = 'Z123
      1 = _LinkedHashMap
        :name = 'Tire'
        :SKU = 'Z456'
  */

}

我应该在处理程序中进行转换吗?

允许构造函数接受LinkedHashMap并在那里转换它?

建立一个工厂?

我不知道省道里面有什么东西能处理这件事吗?

处理这个问题的首选省道方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-11 20:43:08

有几个库允许从JSON数据创建Dart对象。见变形达特森串行化

还可以通过添加如下构造函数来避免镜像:

代码语言:javascript
复制
class Car {
  String paintColor;
  List<Part> parts;

  Car();
  Car.fromJson(json)
      : paintColor = json['paintColor'],
        parts = json['parts'].map((e) => new Part.fromJson(e)).toList();
}

class Part {
  String name;
  String SKU;

  Part();
  Part.fromJson(json)
      : name = json['name'],
        SKU = json['SKU'];
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23021350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档