我正在从服务器获取这种格式的Json
Details:{1:"John",2:"Josh"}
我想将其转换为这种FormArray格式
Details:[{"Number": 1, "Name": John},{"Number": 2, "Name": Josh}]
如何实现?我正在使用Angular 8。
答案 0 :(得分:0)
const input = {1:"John",2:"Josh"};
const output = Object.keys(input).map((key) => {
return {
Number: key,
Name: input[key]
}
});
console.log(output);
您只需要使用Object.keys()
即可将对象的所有键放入数组中,然后对其进行迭代并将其映射到新数组中。
答案 1 :(得分:0)
尝试
const input = { 1: "John", 2: "Josh" };
let Details = [];
for (let key of Object.keys(input)) {
let detail = { "Number": key, "Name": input[key] };
Details.push(detail);
}
我建议,如果您有权访问服务器代码,则应对其进行修改,以返回所需格式的数据,因为当服务器返回包含1000多个项的对象时,这会减慢您的应用程序(前端)的速度。
答案 2 :(得分:0)
上面的答案遗漏了一点,那就是Number
到井number
的转换:
const input = {1:"John",2:"Josh"};
const output = Object.keys(input).map((key) => {
return {
Number: parseInt(key, 10), // This bit
Name: input[key]
}
});