TypeError: data.map is not a function
TypeError: data.map is not a function
我真的很纠结于弄清楚我错过了什么,我不是专家javascript,如果有人能告诉我我做错了什么,我真的很感激。
我有一个工作代码:
if (value_ == "group") {
fetch("http://localhost/someapi"+value_).then(r => { return r.json()})
.then(json => {
var data = `{ "group" : [{"name":"foo","tag":"bar"},{"name":"bool","tag":"lean"}] }`;
var data = JSON.parse(data);
var groupName = data.group.map(current => current.name);
var groupTag = data.group.map(current => current.tag);
console.log(data);
console.log(`json: ${data.group[0].name}`);
});
}
上面的代码可以工作并获取我想要的所有数据,但是 json 来自:
var data = `{ "group" : [{"name":"foo","tag":"bar"},{"name":"bool","tag":"lean"}] }`;
然后我尝试从 URL 中获取 json,其中 return 与上面的 var 数据具有相同的值。但它不起作用。
我确实将 var data = JSON.parse(data);
更改为 data = JSON.parse(json)
并删除 "var data = { "group" : [{"name":"foo","tag":"bar"},{"name":"bool","tag":"lean"}] }
;"
它确实给出了一个错误:(node:10868) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected end of JSON input
我也试过这个代码:
fetch("http://localhost/someapi"+value_).then(r => { return r.json()})
.then(json => {
parseJSON(JSON.stringify(json));
function parseJSON(str){
var data = JSON.parse(str);
var groupName = data.group.map(current => current.name);
var groupTag = data.group.map(current => current.tag);
console.log(data);
console.log(`json: ${data.group[0].name}`);
}
});
}
这给我错误:(node:12668) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'map' of undefined
。
谢谢,请原谅我的英语。
你不需要手动执行JSON.parse因为你的例子第三行json
变量的内容已经是一个对象
试试这个:
fetch("http://localhost/someapi"+value_)
.then(r => r.json())
.then(json => {
var groupName = json.group.map(current => current.name);
var groupTag = json.group.map(current => current.tag);
console.log('groupName', groupName);
console.log('groupTag', groupTag);
});
我真的很纠结于弄清楚我错过了什么,我不是专家javascript,如果有人能告诉我我做错了什么,我真的很感激。
我有一个工作代码:
if (value_ == "group") {
fetch("http://localhost/someapi"+value_).then(r => { return r.json()})
.then(json => {
var data = `{ "group" : [{"name":"foo","tag":"bar"},{"name":"bool","tag":"lean"}] }`;
var data = JSON.parse(data);
var groupName = data.group.map(current => current.name);
var groupTag = data.group.map(current => current.tag);
console.log(data);
console.log(`json: ${data.group[0].name}`);
});
}
上面的代码可以工作并获取我想要的所有数据,但是 json 来自:
var data = `{ "group" : [{"name":"foo","tag":"bar"},{"name":"bool","tag":"lean"}] }`;
然后我尝试从 URL 中获取 json,其中 return 与上面的 var 数据具有相同的值。但它不起作用。
我确实将 var data = JSON.parse(data);
更改为 data = JSON.parse(json)
并删除 "var data = { "group" : [{"name":"foo","tag":"bar"},{"name":"bool","tag":"lean"}] }
;"
它确实给出了一个错误:(node:10868) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected end of JSON input
我也试过这个代码:
fetch("http://localhost/someapi"+value_).then(r => { return r.json()})
.then(json => {
parseJSON(JSON.stringify(json));
function parseJSON(str){
var data = JSON.parse(str);
var groupName = data.group.map(current => current.name);
var groupTag = data.group.map(current => current.tag);
console.log(data);
console.log(`json: ${data.group[0].name}`);
}
});
}
这给我错误:(node:12668) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'map' of undefined
。
谢谢,请原谅我的英语。
你不需要手动执行JSON.parse因为你的例子第三行json
变量的内容已经是一个对象
试试这个:
fetch("http://localhost/someapi"+value_)
.then(r => r.json())
.then(json => {
var groupName = json.group.map(current => current.name);
var groupTag = json.group.map(current => current.tag);
console.log('groupName', groupName);
console.log('groupTag', groupTag);
});