返回顶部
首页 > 资讯 > 前端开发 > JavaScript >怎样在控制台将JS class实例输出为JSON格式
  • 740
分享到

怎样在控制台将JS class实例输出为JSON格式

2024-04-02 19:04:59 740人浏览 安东尼
摘要

怎样在控制台将js class实例输出为JSON格式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。有一个类:class&nbs

怎样在控制台将js class实例输出为JSON格式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

有一个类:

class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }
}

如果我们在控制台中输出其实例:

console.log(new Point(10, 20));

控制台中的输出结果为:

Point { x: 10, y: 20 }

那如何只输出JSON格式,不输出类名”Point”呢?
有的同学可能会使用如下的方法:

console.log(JSON.stringify(new Point(10, 20)))

这种方法当然是可以的,其输出结果如下:

{"x":10,"y":20}

但我们每次输出的时候,都需要调用一次JSON.stringify,显得有些啰嗦。
有没有一种更简洁的办法呢?
答案是肯定的。
实际上,如果你使用的是nodejs,console.log输出类对象时,是调用的inspect函数来序列化并打印输出对象的。
而在node中有一种自定义对象inspection函数的办法。
在6.6.0以上版本中,你可以重写类的[util.inspect.custom](depth, options)函数。

const util = require('util');

class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }

  toString() {
    const that = this;
    return JSON.stringify(that);
  }

  [util.inspect.custom](depth, options) {
    return this.toString()
  }
}

8.x版本的文档说明:https://nodejs.org/docs/latest-v8.x/api/util.html
在node v10.12.0以上版本中,使用了Symbol,并可以重写[inspect]()函数。

const inspect = Symbol.for('nodejs.util.inspect.custom');

class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }

  toString() {
    const that = this;
    return JSON.stringify(that);
  }

  [inspect]() {
    return this.toString()
  }
}

console.log(new Point(10, 20));

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网JavaScript频道,感谢您对编程网的支持。

--结束END--

本文标题: 怎样在控制台将JS class实例输出为JSON格式

本文链接: https://lsjlt.com/news/82903.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎样在控制台将JS class实例输出为JSON格式
    怎样在控制台将JS class实例输出为JSON格式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。有一个类:class&nbs...
    99+
    2024-04-02
  • Tomcat的支持log4j及日志输出为json格式是怎样的
    今天就跟大家聊聊有关Tomcat的支持log4j及日志输出为json格式是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.下载apache-tomcat-7.0.42及解压[...
    99+
    2023-06-03
  • 怎样将ajax请求返回的Json格式数据循环输出成table形式
    这篇文章给大家介绍怎样将ajax请求返回的Json格式数据循环输出成table形式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 首先,Ajax请求数据,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作