将JSON字符串转换为Typescript中的JAVASCRIPT对象
大家好,我有两个JSON字符串 [{描述:“约翰”,编号:“22”,名称:“经理”}] 另一个JSON字符串 [{姓名:“creek”,ID:“198”,角色:“开发者”}] 所以我需要将第一个JSON文件映射到第二个JSON文件 我的输出应该是这样的 [{描述:“小溪”,编号:“198”,名称:“开发商”}] 所以在这里,我认为在将JSON字符串转换为JAVASCRIPT对象时,我们只需要替换属性 有人能帮我吗将JSON字符串转换为Typescript中的JAVASCRIPT对象,javascript,json,typescript,mapping,nodes,Javascript,Json,Typescript,Mapping,Nodes,大家好,我有两个JSON字符串 [{描述:“约翰”,编号:“22”,名称:“经理”}] 另一个JSON字符串 [{姓名:“creek”,ID:“198”,角色:“开发者”}] 所以我需要将第一个JSON文件映射到第二个JSON文件 我的输出应该是这样的 [{描述:“小溪”,编号:“198”,名称:“开发商”}] 所以在这里,我认为在将JSON字符串转换为JAVASCRIPT对象时,我们只需要替换属性 有人能帮我吗 谢谢 您有两种不同的类型,我们可以为它们定义typescript类型 type F
谢谢 您有两种不同的类型,我们可以为它们定义typescript类型
type FormatOne = {
desc: string;
number: string;
designation: string;
}
type FormatTwo = {
name: string;
ID: string;
role: string;
}
我们可以创建一个函数来从一种类型映射到另一种类型
const twoToOne = ({name, ID, role}: FormatTwo): FormatOne => ({
desc: name,
number: ID,
designation: role,
})
当从字符串解析JSON时,必须将类型断言为as
,因为typescript不知道该类型是什么。我们可以说它将是一个混合了这两种类型的数组
const str = '[{desc:"john",number:"22",designation:"manager"}, {name:"creek",ID:"198",role:"developer"}]';
const arr = JSON.parse(str) as Array<FormatOne | FormatTwo>;
这个新数组
fixed
的类型为FormatOne[]
,不需要断言。那么,您尝试了什么?你能把你的代码贴在上面吗
const fixed = arr.map( item =>
('name' in item) ? twoToOne(item) : item
);