Are there any means for JSON serialization/deserialization of Typescript objects so that they don't loose type information? Simple JSON.parse(JSON.stringify) has too many caveats.

Or I should use adhoc solutions?

推荐答案

Use Interfaces to get strong types:

// Creating 
var foo:any = {};
foo.x = 3;
foo.y='123';

var jsonString = JSON.stringify(foo);
alert(jsonString);


// Reading
interface Bar{
    x:number;
    y?:string; 
}

var baz:Bar = JSON.parse(jsonString);
alert(baz.y);

And use type assertion "<>" if you need to.

Json相关问答推荐

从JSON格式提取数据时分隔通用名称

419(未知状态)使用laravel处理PUT请求

将 std::可选值存储到 json 文件 C++

使用动态语言jQuery:根据匹配模式提取与其他值匹配的值

Shell脚本空格转义

Powershell 7.2:ConvertFrom-Json - 日期处理

在Flutter 中将 map 的 Json 转换为 list

如何在 Dart 中与多个 map (字典)相交

PowerShell - JSON/PsCustomObject - 为什么我的数组被扁平化为一个对象?

Angular 2/Web Api - json 解析错误语法错误意外结束输入

ASP.NET MVC - 将 Json 结果与 ViewResult 结合起来

Jackson 的@JsonView、@JsonFilter 和 Spring

使用非美国日期格式时,JsonConvert.DeserializeObject 无法将字符串转换为 DateTime

应该使用什么标头将 GZIP 压缩 JSON 从 Android 客户端发送到服务器?

Spring MVC控制器中的JSON参数

将 CoffeeScript 项目转换为 JavaScript(不缩小)?

如何使用 Jackson 的 objectMapper 反序列化接口字段?

jq:按属性分组和键

Javascript对象和JSON对象有什么区别

在没有 ASP.NET Core 的情况下将 IConfigurationSection 绑定到复杂对象