Node.js SyntaxError:位于0 {J}的JSON中的意外标记

时间:2017-09-29 21:56:16

标签: javascript json node.js

我有一个在Node.js环境中运行的JavaScript应用程序,并使用ZeroMQ与其客户端(也在JavaScript中)进行通信。消息以JSON格式出现在服务器上。

应用程序代码将其抛出

  

Node.js SyntaxError: Unexpected token in JSON at position 0

使用JSON.parse()解析它时。我无法弄清楚这个问题。我已使用http://jsonlint.com

验证了JSON

欢迎任何有关JSON.parse()的帮助。

编辑:01/10 / 17,15:33 以下是客户端和服务器JavaScript代码文件。您需要创建.js文件,无法发布这么大的代码。 还提供了JSON数据文件。 您需要启动server.js和client.js,然后服务器控制台将打印出无法识别的字符的异常。

https://www.4shared.com/folder/6VFJqrgU/javascript.html

Stackoverflow强制实施链接发布限制,因此必须发布一个包含所有文件的链接。

仅供参考,我是C ++程序员,所以不必担心代码格式或编程风格。我必须为项目需要做这件事。

编辑02/10 / 17,11:50:事实证明它是JSON.parse()方法无法解析json。但是,我在args [1] .toString()中添加了一个.trim()调用,并且错误已向下游移动。在位置10的JSON中出现意外的令牌o。我不明白出了什么问题!

编辑04/10/17:这是最小的代码。

var fs = require('fs');

try
{         
  var event = fs.readFileSync('demoReport.json', 'utf8');
  console.log(event);
  var eventObj = JSON.parse(event);

  var reportName = event["ReportName"];
  var reportData = event["ReportData"];

  console.log(reportData);
}
catch(error)
{
    console.log("JSON parsing failed: " + error);         
}

这是json:

{"EventName":"ReportGenEvent","TemplateFileNameLocation":"File location","ReportFormat":".pdf","ReportName":"TestReport","ReportLocation":"report location","Locale":"French","ReportData":{"dateTime":"2017-09-29T00:05:22.824Z","streamName":"","measurementTime":"2017-04-01T01:13:25.000Z","durationSeconds":0.0,"outOfBand":false,"notFinal":false,"newMeasurement":false,"savedFileName":"","measurementType":"Unknown","analysisElapsedSeconds":1.3462,"analysisElapsedCPUSecs":0.0624004,"geometryID":"GEOM","geometryDescription":"","measurementUUID":"6060c80f-007c-4992-88f8-55e2200d99b7","backgroundUUID":"","measurementWorkflowID":"Measurement","instrumentProperties":{"classCode":8,"description":"","manufacturer":"","model":"","properties":"locationName=Home latitude=25 longitude=20 elevation=30","serialNumber":"product/1","versionInformation":"=V1.0"}}}

感谢。

0 个答案:

没有答案