在Javascript中,如何转换此JSON数据?
我需要将firstname和lastname连接成其全名
数据
[
{
"lastname": "Stark",
"firstname": "Tony",
"id": 1
},
{
"lastname": "Parker",
"firstname": "Peter",
"id": 2
},
{
"lastname": "Rogers",
"firstname": "Steve",
"id": 3
},
]
这应该是结果:
结果
[
{
"fullname": "Tony Stark",
"id": 1
},
{
"fullname": "Peter Parker",
"id": 1
},
{
"fullname": "Steve Rogers",
"id": 1
},
]
答案 0 :(得分:5)
使用JSON.parse
将您的数据解析为JavaScript对象,然后使用 Array#map 功能迭代这些项并填充您的自定义对象。
const dataAsJson = `[
{
"lastname": "Stark",
"firstname": "Tony",
"id": 1
},
{
"lastname": "Parker",
"firstname": "Peter",
"id": 2
},
{
"lastname": "Rogers",
"firstname": "Steve",
"id": 3
}
]`;
const data = JSON.parse(dataAsJson);
const changedData = data.map(item => ({ fullname: `${item.firstname} ${item.lastname}`, id: item.id }));
console.log(changedData);
答案 1 :(得分:0)
如果您的脚本可以将此数据用作JSON字符串,则可以使用JSON.parse()
来获取对象数组。
然后用这些对象做任何你想做的事。
然后,最终,使用JSON.stringify()
将结果数据转换回字符串。
答案 2 :(得分:0)
您也可以使用array#reduce
。
const data = `[{"lastname": "Stark","firstname": "Tony","id": 1},{"lastname": "Parker","firstname": "Peter","id": 2},{"lastname": "Rogers","firstname": "Steve","id": 3}]`;
var result = JSON.parse(data).reduce((arr, obj) => {
return arr.push({fullName : obj.firstname + " " + obj.lastname, id: obj.id }), arr;
},[]);
console.log(result);

答案 3 :(得分:0)
首先,解析字符串以使用
获取JSON中的数据JSON.parse()来
。如果您正在使用es6,请使用:
const newArray = JSON.parse(yourArray).map((user) => ({
fullName: `${user.firstname} ${user.lastname}`,
id: user.id
}));

否则使用此:
const newArray = yourArray.map(function (user) {
return {
fullName: user.firstname + user.lastname,
id: user.id
};
});

感谢。
答案 4 :(得分:0)
逻辑上,您需要做的就是遍历数组并创建一个与firstname
和lastname
联系的新对象。所以这是一种非奇特的ES5方法:
// JSON Data parsed into JS Object
var arr = JSON.parse('[{"lastname":"Stark","firstname":"Tony","id":1},{"lastname":"Parker","firstname":"Peter","id":2},{"lastname":"Rogers","firstname":"Steve","id":3}]');
var newArr = [];
for(var i=0; i<arr.length; i++)
newArr.push({"fullname": arr[i]["firstname"] + " " + arr[i]["lastname"], "id": arr[i]["id"]});
console.log(JSON.stringify(newArr)); // Convert to text for JSON.