我是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"
}
将用户名设置为text的位置。我对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)
我现在遇到的问题是开始和结尾都不确定
答案 0 :(得分:1)
这将起作用
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);
答案 1 :(得分:1)
检查一下
<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>
答案 2 :(得分:0)
您只需将其映射到另一个元素,然后
对于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)
答案 3 :(得分:0)
这假定您将在用户列表中只有一个用户,因为它将选择第一个用户...
UserProfile
答案 4 :(得分:0)
我假设输入数据是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);