[英]Formatting json in Javascript
我是javascript的新手,我需要更改要接收的json的格式。我使用此格式的json
{
"id": "3",
"start": "2019-04-15T09:00:00",
"end": "2019-04-15T11:00:00",
"users":[{"id":2,"firstName":"John"}]
}
我需要json这样
{
"start": "2019-04-15T09:00:00",
"end": "2019-04-15T11:00:00",
"text": "John"
}
用户的名字设置为文本的位置。 我对JavaScript不太熟悉,所以我不知道如何遍历此json并重新格式化?
编辑:我正在从文件中获取json这是我的代码
let ob1 = fetch('db.json')
let mapped = {
"start": ob1.start,
"end": ob1.end,
"text": ob1.usersShifts.map(curElem => {return curElem.firstName}) + ""
}
console.log(mapped)
我现在的问题是开始结尾和文本都不确定
这会起作用
const oldData = { "id": "3", "start": "2019-04-15T09:00:00", "end": "2019-04-15T11:00:00", "users":[{"id":2,"firstName":"John"}] } const newData = { start: oldData.start, end: oldData.end, text: oldData.users[0].firstName } console.log(newData);
看一下这个,
<script> function format(){ var oldData = { "id": "3", "start": "2019-04-15T09:00:00", "end": "2019-04-15T11:00:00", "users":[{"id":2,"firstName":"John"},{"id":3,"firstName":"Peter"}] } var newData = []; var i = oldData.users.length; var k = 0; while(k < i){ var temp_array = { "start":oldData.start, "end":oldData.end, "text":oldData.users[k]["firstName"] } newData.push(temp_array); k++; } console.log(newData); } format(); </script>
您只需将其映射到另一个元素,然后
对于users
我认为它是数组
ob1.users.map(curElem => {return curElem.firstName}) + ""
如果大于1,则需要+ ""
将数组转换为String
let ob1 = { "id": "3", "start": "2019-04-15T09:00:00", "end": "2019-04-15T11:00:00", "users":[{"id":2,"firstName":"John"}] } let mapped = { "start": ob1.start, "end": ob1.end, "text": ob1.users.map(curElem => {return curElem.firstName}) + "" } console.log(mapped) // here if you have multiple users and you want the result based on the users let result = [] ob1.users.forEach(currUser => { result.push( { "start": ob1.start, "end": ob1.end, "text": currUser.firstName }) }) console.log(result)
假设您将在用户列表中只有一个用户,因为它将选择第一个用户...
let json_data = [ { "id": "3", "start": "2019-04-15T09:00:00", "end": "2019-04-15T11:00:00", "users":[{"id":2,"firstName":"John"}] }, ]; let output = []; json_data.forEach(function(item) { output.push({"start": item.start, "end": item.end, "text": item.users[0].firstName}); }); console.log(output);
我假设输入数据是JSON字符串。
您需要将JSON字符串解析为javascript对象,然后对其进行修改并将其解析回JSON字符串:
var json = '{"id": "3","start": "2019-04-15T09:00:00","end": "2019-04-15T11:00:00","users":[{"id":2,"firstName":"John"}]}'; var inputData = JSON.parse(json); var outputData = { start: inputData.start, end: inputData.end, text: inputData.users[0].firstName }; var output = JSON.stringify(outputData); console.log(output);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.