首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用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
运行
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

复制
相关文章
在MVC中使用Json.Net序列化和反序列化Json对象
在.Net的MVC开发中,经常会使用到Json对象,于是,系统提供了JsonResult这个对象,其本质是调用.Net系统自带的Json序列化类JavaScriptSerializer对数据对象进行序列化。但是这个系统自带的Json序列化对象方法没有Json.Net好用,于是打算有些时候用Json.Net替代默认的实现。
深蓝studyzy
2022/06/16
1.2K0
Java-json序列化和反序列化
java开发中经常会遇到json的序列化与反序列化,常用的json序列化工具有阿里的Fastjson、spring mvc内置的Jackson、还有就是我们接下来要说的谷歌的Gson。
Vincent-yuan
2021/04/01
4.8K0
Java中的JSON序列化和反序列化
JSON 起源于 1999 年的 JS 语言规范 ECMA262 的一个子集,后来 2003 年作为一个数据格式ECMA404(404???)发布。 2006 年,作为 rfc4627 发布,这时规范增加到 18 页,去掉没用的部分,十页不到。
鱼找水需要时间
2023/03/23
2.3K0
Java中的JSON序列化和反序列化
JSON和Django内置序列化
JSON 什么是JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解 * JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 JSON与XML的对比 JSON 格式于2001年由 Douglas Crockford 提出
人生不如戏
2018/04/12
9080
JSON和Django内置序列化
Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全
Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就不多说了,笔者最近在弄接口,需要操作Json。
痴者工良
2021/04/26
5.7K0
JSON序列化和反序列化还有这种玩法
Mixin对于前端开发者可不陌生,Vue、React等知名前端框架都使用了Mixin。而对于后端开发,尤其是Java后端开发来说Mixin却是一个很陌生的概念。今天来我们通过Jackson让后端开发者也来认识一下Mixin。 场景 比如我们引用了一个Jar包,其中的某个类在某个场景需要反序列化,但是这个类没有提供默认构造。咋办呢?把原来的项目拉下来,重写一下?下下策! 你可以使用Jackson提供的Mixin特性来解决这个问题。 Jackson中的Mixin Jackson中的 Mixin(混入) 我们可以
程序猿DD
2023/04/04
5420
JSON序列化和反序列化还有这种玩法
JSON序列化和反序列化还有这种玩法
Mixin对于前端开发者可不陌生,Vue、React等知名前端框架都使用了Mixin。而对于后端开发,尤其是Java后端开发来说Mixin却是一个很陌生的概念。今天来我们通过Jackson让后端开发者也来认识一下Mixin。
码农小胖哥
2021/11/19
1.6K0
C# Json序列化工具–Newtonsoft.Json简介和使用
Newtonsoft.Json,是.Net中开源的Json序列化和反序列化工具,官方地址:http://www.newtonsoft.com/json。
全栈程序员站长
2022/11/17
3.4K0
【网络】协议的定制与Json序列化和反序列化
我们程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层
平凡的人1
2023/10/15
3960
【网络】协议的定制与Json序列化和反序列化
Golang -- Json序列化
在使用Go Struct的Json Marshal的时候,通过Json To Go Struct工具可以生成结构体,但是当在结构体中只对部分属性赋值的时候,Marshal后的字符串与预期不符,如下所示:
None_Ling
2021/11/24
7680
golang 使用json 包 实现序列化
package main import ( "encoding/json" "fmt" ) func main() { //初始化 data := make(map[string]interface{}, 1) data["name"] = "xiaochuan" data["age"] = 23 //序列化 json_obj, err := json.Marshal(data) if err != nil { fmt.Println("err :", err) } mar
李海彬
2018/03/26
8030
Python json序列化
Python内置的json模块提供了非常完善的对象到JSON格式的转换。废话不多说,我们先看看如何把Python对象变成一个JSON:
py3study
2020/01/16
2.2K0
Python序列化-json
Python 序列化是将 Python 对象转换为可以存储或传输的格式,如 JSON 或二进制格式。
玖叁叁
2023/04/18
7130
DotNet的JSON序列化与反序列化
    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。在现在的通信中,较多的采用JSON数据格
彭泽0902
2018/01/04
1.1K0
python 变量数据使用 json 进行序列化与反序列化操作
python的数据格式存在多种多样的(字典、列表、元组等等)数据格式,它们都只是存在于运行程序的时候,程序运行结束之后一切就消失了。但是我们如果需要保存到硬盘中,这该怎么做呢?我们不会把他们都转化为字符串吧。如果转换为字符串之后我们该怎么取出来呢?
全栈程序员站长
2022/07/08
7010
DRF序列化和反序列化——基本使用
DRF中有serializer的类,我们可以从rest_framework进行导入。
zy010101
2021/12/07
1.1K0
DRF序列化和反序列化——基本使用
kafka使用avro序列化和反序列化
使用avro生成entity文件可以查看这篇文章https://blog.csdn.net/u012062455/article/details/84889694
我是李超人
2020/08/20
2K0
[Go] 使用protobuf进行序列化和反序列化
先定义消息类型 orders.proto syntax = "proto2"; package message; message Orders { required int32 order_id=1; required string title=2; } 在GOPATH创建目录和编译这个消息类型输出到该目录,包名是message mkdir $GOPATH/src/message;protoc --go_out $GOPATH/src/message orders.proto 编写go文件进行序列化和反序
唯一Chat
2019/12/10
6.1K0
[Go] 使用protobuf进行序列化和反序列化
使用pickle进行序列化和反序列化
pickle.dumps()可以直接将对象序列化为bytes,我们可以再对已经序列化之后的bytes进行操作。
灯珑LoGin
2022/10/31
5500
点击加载更多

相似问题

Angular 2表单序列化为JSON格式

31

(反)将类序列化到JSON或从JSON序列化

12

自定义Json (反)序列化?

10

使用json2typescript实现Angular 2+反序列化

124

使用GSON将复杂对象(反)序列化为JSON

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文