Node.js 从JSON文件读取和解析原始数据

Node.js 从JSON文件读取和解析原始数据,node.js,json,parsing,electron,fs,Node.js,Json,Parsing,Electron,Fs,我正在使用QzTray通过我的nodejs应用程序打印收据。我必须创建一个json数组,如下所示 [ '\x1B'+'\x40', '\x1B'+'\x61'+'\x31', 'Beverly Hills, CA 90210'+'\x0A', '\x0A', 'www.qz.io'+'\x0A', '\x0A', '\x0A', 'May 18, 2016 10:30 AM'+'\x0A', '\x0A', '\x

我正在使用QzTray通过我的nodejs应用程序打印收据。我必须创建一个json数组,如下所示

[
    '\x1B'+'\x40',
    '\x1B'+'\x61'+'\x31',
    'Beverly Hills, CA  90210'+'\x0A',
    '\x0A',
    'www.qz.io'+'\x0A',
    '\x0A',
    '\x0A',
    'May 18, 2016 10:30 AM'+'\x0A',
    '\x0A',
    '\x0A',
    '\x0A',
    'Transaction # 123456 Register: 3'+'\x0A',
    '\x0A',
    '\x0A',
    '\x0A',
    '\x1B'+'\x61'+'\x30',
    'Baklava (Qty 4)       9.00'+'\x1B'+'\x74'+'\x13'+'\xAA',
    '\x0A',
    'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'+'\x0A',
    '\x1B'+'\x45'+'\x0D',
    'Here\'s some bold text!',
    '\x0A',
    '\x1B'+'\x45'+'\x0A',
    '\x1D'+'\x21'+'\x11',
    'Here\'s large text!',
    '\x0A',
    '\x1D'+'\x21'+'\x00',
    '\x1B'+'\x61'+'\x32',
    '\x1B'+'\x21'+'\x30',
    'DRINK ME',
    '\x1B'+'\x21'+'\x0A'+'\x1B'+'\x45'+'\x0A',
    '\x0A'+'\x0A',
    '\x1B'+'\x61'+'\x30',
    '------------------------------------------'+'\x0A',
    '\x1B'+'\x4D'+'\x31',
    'EAT ME'+'\x0A',
    '\x1B'+'\x4D'+'\x30',
    '------------------------------------------'+'\x0A',
    'normal text',
    '\x1B'+'\x61'+'\x30',
    '\x0A'+'\x0A'+'\x0A'+'\x0A'+'\x0A'+'\x0A'+'\x0A',
    '\x1B'+'\x69',
    '\x10'+'\x14'+'\x01'+'\x00'+'\x05',
  ]
问题是,当我尝试使用JSON.parse()解析此文件时,总是会出现错误

Uncaught SyntaxError: Unexpected token ' in JSON at position 7
    at JSON.parse (<anonymous>)
    at print (electronAPI_1.0.js:41)
    at HTMLInputElement.onclick (index.html:15)

JSON包含单引号,而不是双引号,这将引发错误。
您还使用ANSI转义码,而不是UTF-16码。UTF-16代码是JSON使用的代码,因此当Javascript试图读取JSON时会产生错误。

也可能您使用的是UTF-8转义码,它与ANSI共享127个相同的字符。在这种情况下,您可以使用来将命令转换为UTF-16。

JSON使用UTF-16转义
\uhhh
,就像JavaScript(和Java,C#,…)一样。[JavaScript根本不支持ASCII。\xHH代表ISO 8859-1.]不,JSON不支持这些;然而,如果你在线查看,你可能会发现UTF-16的等价物。此外,您可能正在使用UTF-8;前127个字符的ANSI和UTF-8都是相同的。我使用您的网站将所有内容从UTF-8更改为UTF-16,现在一切正常。非常感谢您的帮助!
var jsonConfig1 = JSON.parse(fs.readFileSync('couponConfig1.json', 'utf8'));