gpt4 book ai didi

javascript - 如何将 JavaScript 对象转换为 Dart Map?

转载 作者:可可西里 更新时间:2023-11-01 01:24:43 25 4
gpt4 key购买 nike

我正在寻找一些与 new JsObject.jsify 相反的东西。可以将 javascript Object 转换回 Dart Map 有类似的东西可用吗?

我知道我可以使用 JSON 转换为字符串,但这没有解决包含函数、Dart 对象、Dom 元素等的 Object 的传输问题...有没有更好的方法?

最佳答案

这是一个处理 JsObject 的适配器像Map<String, dynamic> :

import 'dart:collection' show Maps;
import 'dart:js';

class JsMap implements Map<String,dynamic> {
final JsObject _jsObject;
JsMap.fromJsObject(this._jsObject);

operator [](String key) => _jsObject[key];
void operator []=(String key, value) {
_jsObject[key] = value;
}
remove(String key) {
final value = this[key];
_jsObject.deleteProperty(key);
return value;
}
Iterable<String> get keys => context['Object'].callMethod('keys', [_jsObject]);

// use Maps to implement functions
bool containsValue(value) => Maps.containsValue(this, value);
bool containsKey(String key) => keys.contains(key);
putIfAbsent(String key, ifAbsent()) => Maps.putIfAbsent(this, key, ifAbsent);
void addAll(Map<String, dynamic> other) {
if (other != null) {
other.forEach((k,v) => this[k] = v);
}
}
void clear() => Maps.clear(this);
void forEach(void f(String key, value)) => Maps.forEach(this, f);
Iterable get values => Maps.getValues(this);
int get length => Maps.length(this);
bool get isEmpty => Maps.isEmpty(this);
bool get isNotEmpty => Maps.isNotEmpty(this);
}

关于javascript - 如何将 JavaScript 对象转换为 Dart Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19691693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com