首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Node.js -为什么JSON.parse混淆响应体中的对象?

Node.js -为什么JSON.parse混淆响应体中的对象?
EN

Stack Overflow用户
提问于 2019-04-20 20:14:10
回答 2查看 238关注 0票数 0

当我使用JSON.parse并使用require模块注销一些获取的数据时,嵌套对象被记录在[Object]中。下面是一个示例(当前使用的是Node版本10.15):

代码语言:javascript
运行
AI代码解释
复制
const request = require("request");

const url = "https://www.reddit.com/r/javascript.json";

request(url, (error, response) => {
  const data = JSON.parse(response.body);
  console.log(data)
});

代码语言:javascript
运行
AI代码解释
复制
{ kind: 'Listing',
  data:
   { modhash: '',
     dist: 26,
     children:
      [ [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object] ],
     after: 't3_bf4cl6',
     before: null } }

我在看这个问题:JSON.parse returns [object] from JSON

问这个问题的人很好奇为什么在JSON.parse之后,对象会被记录为[Object]。最上面的答案指出,JSON.parse隐藏数据的原因是为了提高可读性。但是答案并没有解释覆盖默认行为的方法。

如何让JSON.parse记录完整的数据?有没有办法覆盖默认行为?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-20 21:51:57

如果直接记录response.body没有按照您喜欢的方式进行格式化,这就是为什么您要执行JSON.parse,那么要记录完整格式化的对象,请执行console.log(JSON.stringify(JSON.parse(response.body), null, 2))

票数 5
EN

Stack Overflow用户

发布于 2019-04-20 22:06:29

这不是JSON.parse,而是console.log对嵌套对象的默认行为。可以使用node的util.inspect进行深度日志记录

代码语言:javascript
运行
AI代码解释
复制
const {inspect} = require('util');
console.log(inspect(obj, false, null, true));

或者作为一个函数

代码语言:javascript
运行
AI代码解释
复制
function log(...data) {
  data.forEach(d => console.log(inspect(d, false, null, true)));
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55777363

复制
相关文章
Golang面向对象中易混淆的几个概念
篇外话:从事云计算后端项目非前端开发,若时间有限,值得深入接触的编程语言有4门:c/java/go/rust,若有余力,每个语言都可以深入接触。至于Python语言,可以利用其在配置脚本领域的优势,和bash,perl一样当配置脚本语言,工具语言使用,Python不太适合大型的后端项目开发。
后端云
2022/11/25
4060
响应式编程中 Stream 对象的实现原理
腾讯IVWEB团队
2017/03/13
2K0
reponse对象(响应对象)
原型 def make_response(*args): def make_response(info, status, headers):
星哥玩云
2022/09/14
8040
如何在过滤器中修改http请求体和响应体
在一些业务场景中,需要对http的请求体和响应体做加解密的操作,如果在controller中来调用加解密函数,会增加代码的耦合度,同时也会增加调试的难度。
砒霜拌辣椒
2023/08/23
1.1K1
如何在过滤器中修改http请求体和响应体
SpringBoot 统一响应体
对于业务异常,建议继承 RuntimeException 类,并加上 @BizErrorResponseStatus 注解。 该注解还支持配置
花落花相惜
2021/11/25
9500
Flask 设置个性化的响应体、响应头、状态码
在api设计中,基于restful的设计原则,一个http的响应应该包含执行的响应信息以及状态码。
Devops海洋的渔夫
2019/12/02
3.5K0
JSON.parse()详解
JSON.parse() 是 JavaScript 的一个内置函数,用于解析 JSON 字符串并将其转换为对应的 JavaScript 对象。
网络技术联盟站
2023/07/07
1.9K0
为什么要对JS代码混淆加密?
混淆是指将JavaScript代码转换为难以阅读和理解的形式,这样可以使别人很难通过直接分析代码来实现对代码的恶意分析和攻击。 混淆技术一般可分为语法混淆和控制流混淆两种。 语法混淆是通过改变JavaScript代码的语法形式,如增加多余的代码结构、添加无用的标识符、重命名变量等方式,来使JavaScript代码变得混乱无序。 控制流混淆是通过改变JavaScript的执行顺序或使用加密函数可以使得代码的控制流变得混乱不易被理解。这样可以在一定程度上防止黑客对代码进行篡改和攻击。
用户8703799
2023/04/23
1.3K0
读懂 Android 中的代码混淆
在Android开发工作中,我们都或多或少接触过代码混淆。比如我们想要集成某个SDK,往往需要做一些排除混淆的操作。
技术小黑屋
2018/09/05
1.6K0
为什么 JS 中的对象字面量很酷
在 ES6 之前,JS 中的对象字面量(也称为对象初始化器)是非常基础的。可以定义两种类型的属性:
前端小智@大迁世界
2020/05/11
1.1K0
为什么 JS 中的对象字面量很酷
响应式和函数式,两个容易混淆的概念
传统的编程方式,是顺序执行的,上一个任务没有完成的话需要等待直至完成之后才会执行下一个任务。无论是提升机器的性能还是代码的性能,本质上都需要依赖上一个任务的完成。如果需要响应迅速,就得把同步执行的方式换成异步,方法执行变成消息发送。这变成了异步编程的方式,它是响应式编程的重要特性之一。
fengzhizi715
2018/08/24
1.3K0
Spring Cloud 网关(GlobalFilter)拦截响应体
[银行卡工具类](https://blog.csdn.net/sinat_27403673/article/details/77340292)
江踏歌
2021/10/25
1.7K0
Node中容易混淆的概念
dependencies vs devDependencies dependencies是用于生产环境,需要上传到服务器的资源。 devDependencies是用于开发环境,如本地资源的打包,合并,压缩,预处理(Less to css,CoffeeScript to JavaScript)等,不要发布到生产环境 —save vs —save-dev 其实它俩就对应上面的 使用—save命令安装的就添加到dependencies下 使用—save-dev命令安装的就添加到devDependencies下
前端黑板报
2018/01/29
6120
Node中容易混淆的概念
Javaweb核心响应对象
响应,它表示了服务器端收到请求,同时也已经处理完成,把处理的结果告知用户。简单来说,指的就是服务器把请求的处理结果告知客户端。在B/S架构中,响应就是把结果带回浏览器。
楠羽
2022/11/18
5600
Javaweb核心响应对象
node.js的Promise对象的使用
我们看到chenqionghe虽然是第一个执行,却是最后输出内容,因为设置了3秒后执行
雪山飞猪
2019/08/29
1.7K0
11. Flask 设置个性化的响应体、响应头、状态码
在api设计中,基于restful的设计原则,一个http的响应应该包含执行的响应信息以及状态码。
Devops海洋的渔夫
2022/01/14
8820
11. Flask 设置个性化的响应体、响应头、状态码
JSON.parse() 的非严格模式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
cnguu
2020/10/23
1.2K0
JSON.parse()
我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。
陈不成i
2021/07/14
9630
PHP面向对象-HTTP响应的处理
在PHP中,可以使用cURL库来发送HTTP请求并获取HTTP响应。cURL库是一个功能强大的网络库,可以用于发送各种类型的HTTP请求并获取HTTP响应。
堕落飞鸟
2023/04/28
7400
点击加载更多

相似问题

Node.js + Express -如何记录请求体和响应体

75

混淆node.js中的数组和对象

12

HTTP问题与Node.js响应体

33

在node.js中输出前更改响应体

10

如何在node.js中结束HTTP响应体

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文