将JSON字符串转换为Typescript中的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

大家好,我有两个JSON字符串

[{描述:“约翰”,编号:“22”,名称:“经理”}]

另一个JSON字符串

[{姓名:“creek”,ID:“198”,角色:“开发者”}]

所以我需要将第一个JSON文件映射到第二个JSON文件

我的输出应该是这样的

[{描述:“小溪”,编号:“198”,名称:“开发商”}]

所以在这里,我认为在将JSON字符串转换为JAVASCRIPT对象时,我们只需要替换属性

有人能帮我吗
谢谢

您有两种不同的类型,我们可以为它们定义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
);