首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SyntaxError: JSON输入意外结束:使用节点和Javascript的ALPR

SyntaxError: JSON输入意外结束:使用节点和Javascript的ALPR
EN

Stack Overflow用户
提问于 2020-05-02 01:24:19
回答 1查看 129关注 0票数 2

当车架中没有车牌时,程序可以完美打印,但当车牌中有车牌时,我会得到SyntaxError。已安装Node.js和OpenALPR。照片也被成功地拍摄下来。

代码语言:javascript
复制
const PiCamera = require('pi-camera');

function getRandomInt(max) {
    return Math.floor(Math.random() * Math.floor(max));
}

setInterval(function() {

    var path = './' + getRandomInt(500) + '.jpg';

    const myCamera = new PiCamera({
        mode: 'photo',
        output: path,
        width: 1920,
        height: 1080,
        nopreview: false,
    });


    myCamera.snap()
        .then((result) => {

            var exec = require('child_process').exec;
            var cmd = 'alpr -c eu -n 1 --json ' + path;

            exec(cmd, function(error, stdout, stderr) {

                var data = JSON.parse(stdout);

                if (data.results.length > 0) {
                    console.log(data.results[0].plate);
                } else {
                    console.log("\n\n\nNo license plate found.\n\n");
                }
            });

            console.log(result);

        })
        .catch((error) => {
            console.log(error);
        });

}, 2e3);

错误及其发生的位置是:

代码语言:javascript
复制
undefined:1
  SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at /home/pi/Project/project.js:28:33
    at ChildProcess.exithandler (child_process.js:301:5)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:970:16)
    at Socket.stream.socket.on (internal/child_process.js:389:11)
    at Socket.emit (events.js:189:13)
    at Pipe._handle.close (net.js:600:12)

var data声明前的console.log(stdout);输出:

代码语言:javascript
复制
{"version":2,"data_type":"alpr_results","epoch_time":1588355061888,"img_width":1920,"img_height":1080,"processing_time_ms":1447.340698,"regions_of_interest":[],"results":[]}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-02 02:11:35

JSON的末尾有一个空格。

代码语言:javascript
复制
try {
   var data = JSON.parse(stdout.trim())
} catch (e) {
   console.error('Failed to Parse JSON!', e)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61547418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档