JSON数据连接两个数据

时间:2017-09-04 06:05:04

标签: javascript json

在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
  },
]

5 个答案:

答案 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)

逻辑上,您需要做的就是遍历数组并创建一个与firstnamelastname联系的新对象。所以这是一种非奇特的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.