在TypeScript中实现JSON数组到对象数组的转换方法
解决JSON数组转标准对象数组的问题
嘿,我来帮你搞定这个转换需求!首先得提一句:你给出的原始“JSON数组”其实不是合法的JSON格式——它错误地给每个数组元素添加了数字索引键(比如0:、1:),这不符合数组的语法规范。不过没关系,我们可以通过两种方式得到你想要的标准对象数组:
1. 手动修正格式(如果是静态数据)
直接去掉每个对象前面的数字索引前缀(0:、1:、2:),把每个对象直接作为数组元素即可,修正后的合法数组就是你期望的格式:
[ { "code": "00125", "scheme": "0001", "plotNumber": "125", "propType": "001", "plotType": "001" }, { "code": "190", "scheme": "0001", "plotNumber": "NA 190", "propType": "001", "plotType": "001" }, { "code": "210", "scheme": "0001", "plotNumber": "NA210", "propType": "001", "plotType": "001" } ]
2. 代码自动转换(如果是在JavaScript环境中处理)
如果你的原始数据是作为一个键为数字的对象存在的(因为原始写法更像一个对象而非数组),可以用Object.values()方法快速提取值并转换为数组:
示例代码:
// 假设这是你拿到的原始数据(注意这是一个对象,不是数组) const rawData = { 0: {code: "00125", scheme: "0001", plotNumber: "125", propType: "001", plotType: "001"}, 1: {code: "190", scheme: "0001", plotNumber: "NA 190", propType: "001", plotType: "001"}, 2: {code: "210", scheme: "0001", plotNumber: "NA210", propType: "001", plotType: "001"} }; // 转换为标准对象数组 const convertedArray = Object.values(rawData); // 输出结果就是你想要的格式 console.log(convertedArray);
输出结果:
[ {code: "00125", scheme: "0001", plotNumber: "125", propType: "001", plotType: "001"}, {code: "190", scheme: "0001", plotNumber: "NA 190", propType: "001", plotType: "001"}, {code: "210", scheme: "0001", plotNumber: "NA210", propType: "001", plotType: "001"} ]
内容的提问来源于stack exchange,提问作者Salahudin Malik
相关产品推荐
相关产品推荐

