我可以自动序列化 Dart 对象以通过 Web Socket 发送吗?

2023-12-10

我刚刚看到有一些用于运行 Dart Web 服务器的库,例如Start。 所以我在想这样的事情.. 如果客户端和服务器代码都是用 Dart 编写的,是否可以通过 websockets(或普通的 REST)发送“Dart 对象”,以便类型信息保留在另一端?或者我是否需要通过 JSON 或类似的方式进行序列化/反序列化?还是我在这里想太多了?

问候奥斯卡


您需要以某种方式序列化 Dart 对象。你可以尝试 JSON,也可以尝试重型序列化包.

自定义 Dart 类没有全自动 JSON 序列化。您将需要添加自定义 toJson 序列化器并创建某种 fromJson 构造函数。

例如如果你有一个 Person 类,你可以这样做:

import 'dart:json' as json;

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  Person.fromJson(String json) {
    Map data = json.parse(json);
    name = data['name'];
    age = data['age'];
  }

  Map toJson() {
    return {'name': name, 'age': age};
  }
}

注:fromJson只是一个约定。您需要以某种方式调用它,没有内置机制可以获取任意 JSON 字符串并在自定义对象上调用正确的构造函数。

如上所述,序列化包重量更重,但功能更齐全。这是其文档中的示例:

 // uses the serialization package
 var address = new Address();
 address.street = 'N 34th';
 address.city = 'Seattle';
 var serialization = new Serialization()
     ..addRuleFor(address);
 Map output = serialization.write(address);

and

 // uses serialization
 var serialization = new Serialization()
   ..addRuleFor(address,
       constructor: "create",
       constructorFields: ["number", "street"],
       fields: ["city"]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以自动序列化 Dart 对象以通过 Web Socket 发送吗? 的相关文章

  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • 在IOS中,引导模式中的iframe无法滚动

    我在引导程序模态体内有一个 iframe div class modal fade div class modal dialog div class modal content div class modal header div div
  • 如果在 HTML 标记中使用自定义属性会发生什么?

    这个问题与以下内容无关jQuery本身 但我发现了一个名为Metadata found there http docs jquery com Plugins Metadata metadata其中一个示例使用自定义标签属性 li li 问
  • 如何仅在第一次访问时弹出模态窗口

    我有一个模式窗口 当您访问某个页面时会弹出 访客必须选择我同意或我不同意 我需要一个漂亮的小 jquery 脚本 它会记住谁之前访问过该页面并同意 这样他们每次访问该页面时就不会弹出模式 有人可以推荐一个好的脚本来使用吗 这是代码 div
  • Javascript / jQuery - 转换特殊 html 字符

    我有一个pre元素中包含一些 html 代码 该代码中有特殊字符 例如 lt 所以它不会破坏页面 然后我有一个 javascript 函数 它获取此 pre 元素的内容 突出显示它 使用 codemirror 并用突出显示的文本替换元素内容
  • html 表格顶部对齐?

    我怎样才能让图像和内容向右顶部对齐 如你所见 我尝试了 valign top table border 0 cellspacing 0 cellpadding 0 tbody tr valign top td valign top img
  • Bootstrap 列中的标题高度相同

    我有这样的 html bootstrap css div class container div class row div class col xs 6 col div class block div class title strong
  • HTML5中如何隐藏video标签的全屏按钮

    我需要隐藏 HTML5 中视频标签的全屏按钮 有什么办法可以实现吗 Thanks 我认为你可以通过更改 css 来实现这一点 document fragments 这些是 DOM1 规范 所有浏览器都支持 但关于样式 我不确定 Simple
  • 如何使用 javascript 触发表单验证的本机验证气泡/工具提示?

    我有一个附加了 html5 验证 必需 等 属性的表单 有没有一种方法可以触发本机验证气泡 工具提示的出现 而无需模拟表单的提交按钮上的 单击 正如评论中所述 您可以使用 reportValidity 方法 这是广泛支持 https dev
  • 等宽字体中的字体大小和字符宽度之间有什么依赖关系?

    等宽字体中的字体大小和字符宽度之间有什么依赖关系 在我的网络应用程序中 我使用 courier new 字体 我想知道 字符串的实际长度 以像素为单位 是多少 如果我知道CSS font size属性 它如何帮助我知道字符串的实际长度 谢谢
  • PHP:如何防止不必要的换行

    我正在使用 PHP 创建一些基本的 HTML 标签始终相同 但实际链接 标题对应于 PHP 变量 string p a href strong i title i i strong a br echo string fwrite outfi
  • 如何读取 XML 文件并从中获取值以在 PHP 编码的 HTML 页面中显示

    我有一个 XML 文件 其中有一些重复的标签 其中包含不同的值 我需要获取这些值并显示在我的网页中 请帮助我得到这个 如果您使用 PHP5 可以查看 SimpleXML 您可以在这里找到介绍教程 http www w3schools com
  • 具有固定位置的平滑滚动标题

    当我将位置更改为固定时如何创建平滑滚动 我尝试添加动画但不起作用 最好使用jquery动画 window scroll function var sticky mobile menu scroll window scrollTop if s
  • 通过搜索查找下一个文本并突出显示不起作用

    当在搜索框中搜索任何文本时 它可以找到并突出显示正确的文本 但是当搜索下一个 新文本时 它无法找到下一个 新文本 再次搜索时它不起作用 我无法找到问题 这JS below JS button search click function va
  • css:将div制作成圆角并在其3/4处添加边框

    我有这样的代码 div class circle div and css circle border left 1px solid red border bottom 1px solid red border radius 200px wi
  • 更改 Google Colab Markdown 文本中的字体样式

    这可以改变 Colab 中 Markdown 的字体样式吗 我编写了这段 CSS 代码 但由于它不起作用 我不知道如何使用它 或者是否可能 该代码完美地工作在html文件但无法在 Colab 上运行
  • 为 Gmail 设计 HTML 电子邮件

    我正在生成一封使用内部样式表的 html 电子邮件 即 h2 class foo Email content here 在 Gmail 中查看时 内部样式表中的所有样式似乎都被忽略 Gmail 似乎忽略了内联规则以外的所有样式 例如 h2
  • 如何为 Jackson 编写一个包罗万象的(反)序列化器

    当您提前知道类型时 编写自定义序列化器非常容易 例如 MyType一个人可以写一个MyTypeSerializer extends StdSerializer
  • 在 Selenium WebDriver 上如何从 Span 标签获取文本

    在 Selenium Webdriver 上 如何从 span 标记检索文本并打印 我需要提取文本UPS Overnight Free HTML代码如下 div id customSelect 3 class select wrapper
  • 允许 iframe 跨域链接到目标父框架

    我有 2 个域 域 1 上的一个页面使用 iframe 加载域 2 中的内容 如何允许来自domain2 iframe 内 的链接在domain1 的完整父框架中打开 我一直在关注IE和w3c的新沙箱属性 http www w3 org T

随机推荐

  • 按中心裁剪图像

    我有一个大小为 218 178 的 PNG 图像 我正在使用 matplotlib 的函数 imread 将其转换为 ndarray 我想裁剪它以获得图像的中间 64X64 部分 我尝试用 np reshape 进行裁剪 但没有意义 我也尝
  • 存储软件文档的最佳方式是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 一个明显的答案是 内部维基
  • 动态 Sass 变量

    有什么方法可以根据 html 元素上的类设置颜色变量吗 或者还有其他方法可以实现同样的目标吗 html sunrise accent 37CCBD base 3E4653 flat eceef1 moonlight accent 18c b
  • SSIS 转换——将一列拆分为多列

    我试图找出如何拆分表中的一列 并在将结果导出到 CSV 文件后将其拆分为三列 例如 我有一个名为 fullpatentname 的字段 它以以下文本格式列出 Smith John C 期望将其分为三个单独的列 Smith John C 我很
  • 如何参数化复杂的 OleDB 查询?

    我正在尝试重构一些使用字符串连接来创建 SQL 命令的代码 这使得它容易受到 SQL 注入的攻击 基本上我想做的就是更换所有string sqlToExecute String Format 带有 SQL 命令和 OleDB 参数列表的语句
  • 启动画面前的白屏

    我的问题SplashScreenActivity 当我在手机上启动应用程序时 它会显示白屏约 0 5 秒 这MainActitivy延伸FragmentActivity并在AndroidManifest我声明SplashScreenActi
  • php regex:删除超过双倍的空格

    tags preg replace s s tags 这将删除不止一个空格 我需要删除任何超过两倍空格的内容 我认为 超过双倍空格 是指 3 个或更多空格 tags preg replace s 3 tags 这会将 3 个或更多连续出现的
  • 如何让Python XMLGenerator输出CDATA

    这是 Java 问题的 Python 等效项如何从 Sax XmlHandler 输出 CDATA 部分 Neither xml sax saxutils XMLGenerator or lxml sax ElementTreeConten
  • 如何格式化和遍历一个包含数组的数组,并且每个数组又包含一个数组?

    我正在尝试在数组中包含的数组中创建多维 tests 0 1 2 4 5 6 在测试中的每个数组中 我想要有子数组 使用第一个数组 0 1 2 创建另一个 for 循环来遍历子数组的内容 从 bash 4 3 开始 3 个级别 第一个仅包含一
  • 在 Android Studio 3.2 Canary 16 Kotlin 项目上找不到符号 DataBindingComponent

    我刚刚在 Android Studio 3 2 Canary 16 上创建了一个启用了 Kotlin 的新项目 然后我还启用了数据绑定 但收到一条错误消息 指出找不到 DataBindingComponent 类 这是我的项目等级 Top
  • 如何在mongodb中找到匹配的记录?

    我的集合中有一条记录 我想获取 id 为 1 的人的详细信息 但是我获取了 2 次而不是 1 次的详细信息 db mycollection insert person id 1 details name Aswini Age 10 id 2
  • 核心图跳过值图

    我正在尝试绘制一个带有用户友好的时间线的图表 其中每天 每周 由时间范围决定 作为 x 轴的标签 但是 数据源值是根据另一种基础给出的 一天可能有 10 个条目 一个月内可能有 11 个条目 请参阅 Photoshop 图像 使用最新的 C
  • 什么时候应该在类中使用静态方法?有什么好处?

    我有静态变量的概念 但是类中静态方法有什么好处 我参与过一些项目 但我没有将方法设为静态 每当我需要调用类的方法时 我都会创建该类的一个对象并调用所需的方法 Q 方法中的静态变量即使在执行方法时也保留其值 但只能在其包含方法中访问 但是静态
  • Backand.signup() - “创建我的应用程序用户”执行失败

    我正在尝试使用以下方法注册新用户 Backand signup firstName lastName username password password2 但我最终得到 POST https api backand com 1 user
  • 如何将 JRadioButton 添加到 JTable 的两列并对其进行 ButtonGroup。

    我想要一个JTable它由 2 列组成 有RadioButton 活动和非活动 这样如果活动列是Selected然后 Inactive RadioButton 得到Unselected反之亦然意味着在单行中只能从 2 个单选按钮中选择 1
  • R- 在持续时间/间隔内合并两个数据集

    我仍在学习 R 并且在尝试合并来自两个不同 data table 的两个数据集并在时间间隔内匹配它时遇到困难 例如给定 table1 schedule 和 table2 schedule 表1 时间表 Channel Program pro
  • 在 C# 中调整大小时保留表单纵横比

    如何使表单具有固定的纵横比 并在调整大小时保留该纵横比 我知道这可以通过重写来完成OnSizeChanged并手动修改 新 高度 宽度 但这会导致闪烁 因为它在调用事件之前调整了一次大小 调整为与宽高比不匹配的大小 然后再次调整大小 调整为
  • 将 ASCII 十六进制字符串 SigString 嵌入 HTML 页面,而不是 base64

    我目前正在开发一个项目 该项目要求我将 Topaz 签名图像嵌入到 HTML 页面中 我知道如果图像已更改为 Base64 字符串 但签名返回的字符串值是 ASCII 十六进制字符串 则这是可能的 有人有可以显示嵌入的 ASCII 十六进制
  • 如何获取WEB-INF/class文件夹下的资源路径(java ee web动态项目)

    我在 Eclipse 中开发 Web 动态项目 一个名为 users txt 的文件位于classes 文件夹 WEB INF classes users txt 下 如何获取该文件在类 基类 而不是 servlet 类 中的相对路径 我将
  • 我可以自动序列化 Dart 对象以通过 Web Socket 发送吗?

    我刚刚看到有一些用于运行 Dart Web 服务器的库 例如Start 所以我在想这样的事情 如果客户端和服务器代码都是用 Dart 编写的 是否可以通过 websockets 或普通的 REST 发送 Dart 对象 以便类型信息保留在另