【发布时间】:2021-07-21 01:03:39
【问题描述】:
我有一个 JSON 对象,其中包含一堆字符串...
{
id: "1",
amount: "57,000",
title: "I am a test"
}
我怎样才能把它转换成这样的界面:
interface MyObj {
id: number;
amount: number;
title: string;
}
我是否需要映射每个对象属性并尝试转换为必要的类型,或者我可以简单地尝试将 JSON 对象强制转换为类型?
为清楚起见,这里有一些附加信息。
我有一个上面示例对象的数组,JSON 所以...
[
{
id: "1",
amount: "57,000",
title: "I am a test"
},
{
id: "2",
amount: "2347,000",
title: "I am a test as well"
}
]
此 JSON 对象中的所有值都是字符串。每次我们在 TS 中使用对象时,我们都希望它们的类型是正确的。比如 id 和 amount 应该是数字,它们可以在存储到我们的 state 之前进行转换。
所以我想将上面数组中的JSON对象转换成特定的接口或类型。因为类型不匹配我不能只使用接口,我需要在实际与接口对齐之前进行一些转换或尝试转换为类型。这是一个问题,我如何映射数组中的 JSON 对象并将一些键从字符串转换为数字(可能?)。
【问题讨论】:
-
由于
amount和id实际上属于string类型,因此转换无法按预期工作,还是您的示例中的错误? -
什么意思?您什么时候尝试处理这些 - 在编译时(生成 TS 源)之前、在编译时、在编译时之后/在运行时?
-
类型故意不匹配。这部分是问题所在。我如何将具有所有字符串值的 JSON 对象转换为可观的接口。 IE。尝试将 id 和 number 强制转换为 number 或默认设置。
-
57,000中的逗号应该是小数分隔符还是千位分隔符?
标签: javascript json typescript interface