我必须序列化一些与WebRTC相关的dart对象,以便通过信令通道发送它们。例如,我必须编码RtcSessionDescription
和RtcIceCandidate
个实例。这两个类都提供了一个构造函数来在给定的映射的上下文中构建它们,但没有人提供一种方法来从原始对象中创建这样的Map。
如何生成字符串?我是否必须绕过地图对象?
例如:
RtcSessionDescription - >地图 - >字符串 - (send_over_signalingChannel) - >字符串 - >地图 - > RtcSessionDescription
答案 0 :(得分:1)
您可以使用dart:convert
包轻松地在Map和String之间进行转换。
https://www.dartlang.org/articles/json-web-service/
我不知道RtcSessionDescription< - >映射。
另请参阅此问题:Can I automatically serialize a Dart object to send over a Web Socket?
答案 1 :(得分:1)
最后我找到了一个解决方案(使用dart:convert
作为GüntherZöchbauer建议):
RtcSessionDescription original = ...;
//serialize
final String serialized_sdp = JSON.encode({
'sdp':original.sdp,
'type':original.type
});
//decode
final Map sdp_map = JSON.decode(serialized_sdp);
RtcSessionDescription sdp = new RtcSessionDescription(sdp_map);