首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Angular 2序列化和反序列化JSON

使用Angular 2序列化和反序列化JSON
EN

Stack Overflow用户
提问于 2017-10-27 18:29:34
回答 1查看 3.4K关注 0票数 3

我想用Angular 2做一个浏览器应用程序,你可以在其中制作和分享模拟考试。我有一个Exam类实例,其中包含包含ExamQuestion类实例等的ExamSection类实例。

我希望应用程序能够保存和加载JSON格式的检查。我目前的解决方案是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
constructor(private http:Http) {
    this.http.get('Exam.json')
            .map((response) => {
              return response.json();

            }).subscribe(data => {
              this.exam = <Exam>data;
              //console.log(typeof(<Exam>data));
              console.log(this.exam);
              this.refreshMarksMethods(this.exam);
            });

}

第一个问题是JSON被反序列化为纯对象。我尝试使用serializer.ts (https://www.npmjs.com/package/serializer.ts)和类转换器(https://github.com/pleerock/class-transformer)对Angular使用的TypeScript类进行序列化和反序列化,但我一直收到与缺少模块相关的错误。据我所知,这些库的示例中没有引用缺失的模块,所以我不知道它们属于哪里。

我试图解决这个问题的一个技巧是将普通对象转换为所需的Typescript类型,但这不起作用(对象类型不变)。因为对象是普通对象,所以我去掉了方法和像length这样的属性(对于数组)。

谁能给我解释一下在Angular应用程序中如何在TypeScript对象和JSON对象之间进行转换,包括所需的库如何以及在哪里?有时将模块放在"node_modules“文件夹中是可行的,有时它属于"src”文件夹中的某个位置(我通常需要反复试验才能解决这个问题)。

编辑:我得到了一个老套的解决方案,JSON中描述的对象有一个“反序列化”方法,用于递归地重新构造类实例。我希望有人能解释如何使用不同的解决方案,因为我怀疑我目前的解决方案是否适用于大型项目。

EN

回答 1

Stack Overflow用户

发布于 2018-01-16 11:56:33

我做了一个名为json-dry的小包。它支持(循环)引用和类实例。

您必须定义两个类方法(原型上的toDry和静态方法的unDry ),注册类,然后就可以了。

我已经使用它很多年了,它也能够序列化非常大的集合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46981353

复制
相关文章
python抛出异常和捕获异常_在try块中可以抛出异常吗
2.解析 关键字try 以及except是 使用Python 解释器主动抛出异常的关键, Python解释器从上向下执行 当运行try中的某行代码出错,会直接进入except中执行下方代码 try中错行下方的代码不会被运行 except…as… 是固定的语法格式 打印traceback信息 finally 后的代码不管是否抛出异常都会执行 except 的原理 调用sys中 exc.info 方法返回基本信息 所以抛出异常的第一步拓展可以在这里开始 注意 每个关键字下方的代码都是独立的(所有的变量都是局部变量)
全栈程序员站长
2022/11/02
4.6K0
在Java8的Consumer中抛出异常
最近在实现公司内部一个通用svn数据工具类,其中有段代码是拿到当前更新后的数据进行下一步操作,用的是java8的Consumer实现的,代码如下:
Erwin
2021/03/04
3.9K1
[010]HWC在SurfaceFlinger中的角色
HWC是Hardware Composer是缩写,翻译成中文就是硬件作曲家,或者硬件设计者。
王小二
2020/06/08
1.9K0
[010]HWC在SurfaceFlinger中的角色
在python中,如果异常并未被处理或捕捉_抛出异常是什么意思
Python使用异常类来管理异常信息。当发生异常的时候,程序会抛出一个异常信息,自动根据代码的层次查找异常处理信息。当代码发生异常而没有指定处理异常的方法是,Traceback会打印发生异常时代码执行栈的情况。
全栈程序员站长
2022/11/02
1.7K0
python中抛出异常_python mkdir
Python程序中的异常不仅可以自动触发,还可以由开发人员使用raise语句和assert语句主动抛出。
全栈程序员站长
2022/11/02
6590
python中抛出异常_python mkdir
在Windows中劫持DLL
DLL劫持是一种用于执行恶意有效负载的流行技术,这篇文章列出了将近300个可执行文件,它们容易受到Windows 10(1909)上相对路径DLL劫持的攻击,并展示了如何使用几行VBScript绕过UAC可以以提升的特权执行某些DLL劫持。
Al1ex
2021/07/21
2.2K0
在Windows中劫持DLL
windows中在 pycharm中安装pytorch
windows中在 pycharm中安装pytorch 打开pycharm 打开file————settings————Project Interpreter———— 点击+号
全栈程序员站长
2022/09/28
1.5K0
windows中在 pycharm中安装pytorch
在医疗行业中,FPGA扮演什么角色?
FPGA(现场可编辑门阵列)作为赛灵思(Xilinx)的一项重要发明,以其可编程和灵活性著称。起初,FPGA只是用来仿真ASIC,再进行掩码处理和批量制造使用。不过ASIC相比FPGA来说明显在定制化上要求过高,流片量过小情况下成本反而更高,因此两者毫不冲突地“各司其职”。而后,随着加速器的出现和算力提升,目前已成为与GPU齐名的并行计算器件。
FPGA技术江湖
2021/04/14
8670
在医疗行业中,FPGA扮演什么角色?
领域模型在交流中扮演的角色
问题:我对于领域模型如何表示始终还不太明白。按照Evans书里的说法,代码应当是领域模型的主要部分,文档、图表作为补充。另外一方面,领域模型应当是所有参与者都能够理解的,而我觉得用户不太可能去理解代码。
张逸
2018/10/24
1.3K0
领域模型在交流中扮演的角色
在Spring/Springboot中异步处理异常
目前,每当出现特殊情况时,客户休息应用程序都会返回一个 ResponseEntity(一个由状态、标头和正文组成的 Http 响应包装器)。例如,在请求详细信息时找不到客户。
用户4235284
2023/10/14
3040
在Spring/Springboot中异步处理异常
在 React 应用中获取数据
可以说 React 是构建 web 应用最流行的库。然而,它并不是全能的 web 框架。它只关注 MVC 中的 view 模块。
前端达人
2018/10/18
8.5K0
在 React 应用中获取数据
在 Web 中获取 MAC 地址
两年前做的一个项目,当时客户的需求还没有完成,客户就提出了解决安全的问题,这是当时写的一个记录,分享到这里。
码农UP2U
2020/08/26
15.7K4
在js中获取thymeleaf变量
大人者,不失其赤子之心者也。——《孟子·离娄下》 代码很简单 如下即可,这里的'Achao'是为了防止编译报错 <script th:inline="javascript"> var data = /*[[${data}]]*/ 'Achao'; console.log(data); </script>
阿超
2022/08/16
13.3K0
在Springmvc中获取properties属性
一些关键的属性一般都会拿出来作为配置,比如数据库连接等。在springmvc中也提供了获取property的类,比如@Value来获取。我接触spring很浅,基本上都是百度的问题解决方法,百度到@value的用法,按照说明尝试了两次都失败了。正巧身边又有合适的方法,于是便没有去深入研究为什么失败,这个留在以后研究。下面就是获取代码: 源码来自:https://github.com/thinkgem/jeesite 1 package com.demo.common.utils; 2 3 im
Ryan-Miao
2018/03/13
3.4K0
在Windows中玩转Docker Toolbox
最近在研究虚拟化,容器和大数据,所以从Docker入手,下面介绍一下在Windows下怎么玩转Docker。
深蓝studyzy
2022/06/16
1.9K0
在Windows中玩转Docker Toolbox
在windows中:双击运行Python
一、安装Python解释器的windows环境,如果双击运行*.py的文件,会闪退。怎样避免闪退呢?
py3study
2020/01/06
4.6K0
在windows中:双击运行Python
在QT中处理windows消息
http://blog.csdn.net/sryan/article/details/6744070
bear_fish
2018/09/20
2.6K0
在QT中处理windows消息
在windows环境中关于 pychar
因为要在windows系统系统中练习tensorflow,所以需要配置一下环境(来回的开关机切换环境太麻烦了。。。。。。)
py3study
2020/01/21
9100
在 Azure Application Insights 中记录用户身份信息
Azure Application Insights 是一个非常强大的 APM 工具,用于监视 Web 应用程序。但是,并非我们需要的所有功能都是开箱即用的。例如,为了记录请求和响应正文,我们必须写一个自定义 ASP.NET Core 中间件,就像这篇文章说的那样。
Edi Wang
2021/08/23
1K0
在 Azure Application Insights 中记录用户身份信息
在Xcode的模拟器中的textField中输入中文
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/48895361
用户1451823
2018/09/13
3.5K0
在Xcode的模拟器中的textField中输入中文

相似问题

在Windows Azure中:什么是web角色、工作者角色和VM角色?

31

Azure工作者角色中的异常警报

20

在Windows中实现工作者角色

12

Windows Azure - HttpListener -工作者角色

10

在Azure工作者角色中运行WebJobs

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文