Javascript SyntaxError:JSON中位于位置1的意外标记o
我正在使用Express中的RESTWeb服务,我希望得到一个包含我在参数中输入的小时数的对象Javascript SyntaxError:JSON中位于位置1的意外标记o,javascript,json,node.js,express,parameters,Javascript,Json,Node.js,Express,Parameters,我正在使用Express中的RESTWeb服务,我希望得到一个包含我在参数中输入的小时数的对象 var express=require('express'); var router=express.router(); /*获取主页*/ router.get('/',函数(req,res,next){ res.render('index',{title:'Express'}); }); 路由器.get('/test',函数(req,res){ var responseObject={messag
var express=require('express');
var router=express.router();
/*获取主页*/
router.get('/',函数(req,res,next){
res.render('index',{title:'Express'});
});
路由器.get('/test',函数(req,res){
var responseObject={messages:'OK'};
res.send(responseObject);
})
router.get('/api/conommation/:heure',函数(req,res){
var heure=req.query.heure;
var响应对象=[{
“heure”:“08”,
“大奖赛”:“0.1593”
}, {
“heure”:“09”,
“大奖赛”:“0.1593”
}, {
“heure”:“01”,
“大奖赛”:“0.1252”
}, {
“heure”:“02”,
“大奖赛”:“0.1252”
}, {
“heure”:“03”,
“大奖赛”:“0.1252”
}];
var jsonContent=JSON.parse(responseObject);
jsonContent.forEach(函数(obj){
对象forEach(函数(o){
如果(o['heure']==heure)
控制台日志(o);
});
});
res.json(jsonContent);
});
module.exports=路由器
无需var jsonContent=JSON.parse(responseObject)代码>因为json已经被解析
替换
var jsonContent = JSON.parse(responseObject);
借
出现错误是因为您试图在JS对象上而不是字符串上使用JSON.parse
(该方法用于解析JSON字符串)
只需删除行var jsonContent=JSON.parse(responseObject)编码>并直接使用responseObject
直接使用responseObject
并移除内部foreach循环
heure=01;
var响应对象=[
{
“heure”:“08”,
“大奖赛”:“0.1593”
},
{
“heure”:“09”,
“大奖赛”:“0.1593”
},
{
“heure”:“01”,
“大奖赛”:“0.1252”
},
{
“heure”:“02”,
“大奖赛”:“0.1252”
},
{
“heure”:“03”,
“大奖赛”:“0.1252”
}
];
响应对象forEach(函数(obj){
if(obj['heure']==heure)
控制台日志(obj);
})
这是最后的代码:
var express=require('express');
var router=express.router();
/*获取主页*/
router.get('/',函数(req,res,next){
res.render('index',{title:'Express'});
});
路由器.get('/test',函数(req,res){
var responseObject={messages:'OK'};
res.send(responseObject);
})
get('/api/conommation',函数(req、res、next){
var heure=请求参数('heure');
var responseObject=[
{“heure”:“08”,
“大奖赛”:“0.1593”},
{“heure”:“09”,
“大奖赛”:“0.1593”},
{“heure”:“10”,
“大奖赛”:“0.1593”},
{“heure”:“11”,
“大奖赛”:“0.1593”},
{“heure”:“12”,
“大奖赛”:“0.1593”},
{“heure”:“13”,
“大奖赛”:“0.1593”},
{“heure”:“14”,
“大奖赛”:“0.1593”},
{“heure”:“15”,
“大奖赛”:“0.1593”},
{“heure”:“16”,
“大奖赛”:“0.1593”},
{“heure”:“17”,
“大奖赛”:“0.1593”},
{“heure”:“18”,
“大奖赛”:“0.1593”},
{“heure”:“19”,
“大奖赛”:“0.1593”},
{“heure”:“20”,
“大奖赛”:“0.1593”},
{“heure”:“21”,
“大奖赛”:“0.1593”},
{“heure”:“22”,
“大奖赛”:“0.1593”},
{“heure”:“23”,
“大奖赛”:“0.1593”},
{“heure”:“00”,
“prix”:“0.1252”},
{“heure”:“01”,
“prix”:“0.1252”},
{“heure”:“02”,
“prix”:“0.1252”},
{“heure”:“03”,
“prix”:“0.1252”},
{“heure”:“04”,
“prix”:“0.1252”},
{“heure”:“05”,
“prix”:“0.1252”},
{“heure”:“06”,
“prix”:“0.1252”},
{“heure”:“07”,
“prix”:“0.1252”},
];
响应对象forEach(函数(obj){
if(obj['heure']==heure)
res.json(obj);
其他的
下一步返回;
});
});
module.exports=路由器
可以用英语重命名变量,以便人们理解您的代码。我不得不使用谷歌翻译来学习heure
的意思hour
。它可以工作,但总是返回我收到的第一个项目。错误是:发送后无法设置标题。我应该向我的代码中添加什么?谢谢,我看到了这个链接,但我无法理解我添加到代码中的内容是否有效,因为当我在URLhttp://localhost:3000/api/consommation/heure=13
我总是获取数组对象中的第一项。我在命令行中遇到这样一个错误:发送消息后,error不能设置标题。。我
var jsonContent =responseObject;