首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON的Javascript SSH缓冲区

JSON的Javascript SSH缓冲区
EN

Stack Overflow用户
提问于 2021-08-17 21:00:38
回答 1查看 50关注 0票数 0

我在sFTP服务器中有一个json文件,我使用ssh2-sftp-client库去获取它。我不想将此文件写入本地文件,我希望能够读取它并将其保存到代码中的JSON变量中。但我似乎无法将缓冲区输出转换为JSON。下面是我的代码:

代码语言:javascript
复制
const Client = require('ssh2-sftp-client');

async function getFTPFile() {
  const sftp = new Client();
  const config = {
    host: ...,
    username: ...,
    password: ...
  };

  return sftp.connect(config)
    .then(() => sftp.get('./directory/Data.json'))
    .then((data) => {
      console.log(data);
      return JSON.parse(data.toString());
    });
}

我确认它正在拉取正确的文件,但当我尝试将缓冲区数组转换为json对象时,我得到了以下错误:

代码语言:javascript
复制
SyntaxError: Unexpected token � in JSON at position 0
    at JSON.parse (<anonymous>)

如何解决此错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-30 20:46:54

原来这个文件是用utf16编码的,并且以一个ZWNBSP字符开头。因此,以下方法解决了该问题:

代码语言:javascript
复制
  let file = data.toString('utf16le');
  if (file.charCodeAt(0) === 0xFEFF) {
    file = file.slice(1)
  }
  return JSON.parse(file);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68823973

复制
相关文章

相似问题

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