javascript - 为什么 JSON.parse 会忽略一些数据?

标签 javascript json node.js jsonparser

我试图理解为什么当我解析包含 HTML 的 JSON 响应时,JSON.parse 不会失败,但会忽略我试图从此端点获取的此类数据 http://registry.npmjs.org/core-js.

这里是一个例子。

fetch('http://registry.npmjs.org/core-js').then(response => 
response.json()).then(data => console.log(data));

属性自述文件为空,而如果您在浏览器中加载端点,自述文件将完全填充为:

   "readme": "# core-js\n\nModular standard library for JavaScript. Includes polyfills for [ECMAScript 5, 2015, 2016, 2017](https://github.com/zloirock/core-js#ecmascript): [promises](https://github.com/zloirock/core-js#ecmascript-promise), [symbols](https://github.com/zloirock/core-js#ecmascript-symbol), [collections](https://github.com/zloirock/core-js#ecmascript-collections), iterators, [typed ... n\n**It's a global version (first 2 examples), for more info see [`core-js` documentation](https://github.com/zloirock/core-js/blob/v3/README.md).**\n",

但是用 JSON.parse 解析后它看起来像这样

enter image description here

如您所见,自述文件是空的。为什么??

仅供引用,我注意到使用 Node.js 的原始问题

body = JSON.parse(body.toString('utf8'));

但后来我注意到在浏览器中我得到了相同的结果,但是,当自述文件包含某种字符、编码或任何似乎无声地失败的东西时,它只会发生在某些包中。例如:使用 jquery 可以正常工作。

 fetch('http://registry.npmjs.org/jquery').then(response => 
 response.json()).then(data => console.log(data));

也许有人知道这里发生了什么。我尝试了许多不同的方法来删除换行符等,但结果总是一样。

最佳答案

我想你错过了这个对象中有多个 readme 属性:根中的那个是空的 ""

但是如果你打开 versions > 3.0.0-alpha.1 (2 or 3) 你会看到 readme prop 也是那里有你提供的值(value)

"readme": "# core-js\n\nModular standard library for JavaScript. Includes polyfills for [ECMAScript 5, 2015, 2016, 2017](https://github.com/zloirock/core-js#ecmascript): [promises](https://github.com/zloirock/core-js#ecmascript-promise), [symbols](https://github.com/zloirock/core-js#ecmascript-symbol), [collections](https://github.com/zloirock/core-js#ecmascript-collections), iterators, [typed ... n\n**It's a global version (first 2 examples), for more info see [`core-js` documentation](https://github.com/zloirock/core-js/blob/v3/README.md).**\n"

关于javascript - 为什么 JSON.parse 会忽略一些数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49587970/

相关文章:

python - 在 JSON 文件中预处理推文

javascript - 如何在javascript中将数据排序到表中?

python - 使用 Python 从另一个字段满足条件的大型 JSON 文件中解析字段

javascript - 如何将创建的 PDF 文件中的 base64 字符串发送给客户端?

node.js - OUTLOOK REST API 使用 Node.js 拒绝事件

javascript - 如何检测用户是否在同一 session 中打开了多个窗口或选项卡?

javascript - pretty-print Haxe JS 输出

javascript - 使用关键字过滤多维 JS 数组

javascript - abc.filter().map() ==> to reduce() 应该怎么用呢? JavaScript

javascript - 找不到变量 : require