JSON解析期间的Typescript自动类型转换?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON解析期间的Typescript自动类型转换?相关的知识,希望对你有一定的参考价值。
我有以下JSON数组,其中id键是一个字符串(呵呵)。
"locations": [
{
"default_currency_id": "17",
"continent": "1",
"country_code": "AL",
"gift_value": "150",
"alert": "TEST",
"caption": "Albania",
"id": "1"
},
我想使用基于模型中定义的值而不是使用Number函数的自动转换(请参阅附件摘录):请问如何以正确的方式进行?理想情况下,我想将json数组放入类型模型而无需手动解析(正如您在for循环中看到的那样)
export class Location {
default_currency_id: number;
continent: string;
country_code: string;
gift_value: string;
alert: string;
caption: string;
id: number;
}
parseDataset(data: any) {
console.log('parseDataset');
console.log(data);
if(data.locations_gifts != null) {
//this.dataSet.locations = data.locations_gifts;
for(let o of data.locations_gifts){//HOW TO AVOID MANUAL PARSING?
console.log(o);
let item: Location = <Location>{
default_currency_id: Number(o.default_currency_id), //HOW TO AVOID MANUAL CONVERSION?
};
this.dataSet.locations.push(item);
}
}
console.log(this.dataSet)
}
答案
你不能这样做。 TypeScript可帮助您在开发中验证代码,而不是在运行时中。因此,动态响应数据的数据转换不在其范围内(至少在此时刻)
另一答案
我想你可以使用JSON.parse()中的reviver
选项我用它来将我的JSON日期(这是字符串)转换为javascript Date对象例如:https://mariusschulz.com/blog/deserializing-json-strings-as-javascript-date-objects
以上是关于JSON解析期间的Typescript自动类型转换?的主要内容,如果未能解决你的问题,请参考以下文章
从 Typescript 解析 JSON 恢复数据成员但不恢复类型:无法在结果上调用方法
Angular 5 / Typescript - 如何将复杂的 json 对象转换为类
为 GraphQL 输出解析自动生成的 typescript-mongodb 类型