BOM错误,输入未检测到错误

时间:2016-09-05 15:03:45

标签: php json magento docker byte-order-mark

这是我的JSON

composer update

当我尝试{{1}}

它给出错误

  

[SELD \ JsonLint \ ParsingException]
  “./composer.json”不包含有效的JSON
  检测到BOM,确保您的输入不包含Unicode   字节顺序标记

     

更新[--prefer-source] [--prefer-dist] [ - dr-run] [ - dev]   [--no-dev] [--lock] [--no-plugins] [--no-custom-installers]   [--no-autoloader] [ - no-scripts] [ - no-progress] [--with-dependencies]   [-v | vv | vvv | --verbose] [-o | --optimize-autoloader]   [-a | --classmap-authoritative] [--ignore-platform-reqs]   [--prefer-stable] [--prefer-lowest] [-i | --interactive] [--root-reqs]   [ - ] [] ......

但根据多个网站有效

https://jsonformatter.curiousconcept.com/

例如这里

我遵循本教程

https://andykdocs.de/development/Docker/Dockerize-Magento

但是几个小时后,我收到了这个错误。请帮忙

我尝试在docker中构建一个magento。

2 个答案:

答案 0 :(得分:1)

Byte Order Mark(简称BOM)只存在于文件中。当编辑器或文本查看器呈现composer.json时,它会删除BOM,因此,如果将composer.json的内容粘贴到基于Web的linter中,它将不再具有BOM,因此基于Web的工具你正在粘贴,将验证它。您应该做的是从文件中删除BOM,您可以使用awk command that I borrowed from this answer

mv composer.json composer-bom.json # rename file with BOM
awk 'NR==1{sub(/^\xef\xbb\xbf/,"")}{print}' composer-bom.json > composer.json
rm -f composer-bom.json # delete file with BOM

答案 1 :(得分:0)

我在PowerShell中遇到无法识别的问题。所以我找到了一个简单得多的解决方案。打开记事本,只需复制并粘贴作曲家文件中的内容即可。保存文件,然后重命名文件composer.json,一切将按您预期的那样工作。