怎樣在控制臺(tái)將JS class實(shí)例輸出為JSON格式,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
有一個(gè)類:
class Point { constructor(x, y) { this.x = x; this.y = y; } }
如果我們?cè)诳刂婆_(tái)中輸出其實(shí)例:
console.log(new Point(10, 20));
控制臺(tái)中的輸出結(jié)果為:
Point { x: 10, y: 20 }
那如何只輸出JSON格式,不輸出類名”Point”呢?
有的同學(xué)可能會(huì)使用如下的方法:
console.log(JSON.stringify(new Point(10, 20)))
這種方法當(dāng)然是可以的,其輸出結(jié)果如下:
{"x":10,"y":20}
但我們每次輸出的時(shí)候,都需要調(diào)用一次JSON.stringify,顯得有些啰嗦。
有沒(méi)有一種更簡(jiǎn)潔的辦法呢?
答案是肯定的。
實(shí)際上,如果你使用的是nodejs,console.log輸出類對(duì)象時(shí),是調(diào)用的inspect函數(shù)來(lái)序列化并打印輸出對(duì)象的。
而在node中有一種自定義對(duì)象inspection函數(shù)的辦法。
在6.6.0以上版本中,你可以重寫類的[util.inspect.custom](depth, options)函數(shù)。
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版本的文檔說(shuō)明:https://nodejs.org/docs/latest-v8.x/api/util.html
在node v10.12.0以上版本中,使用了Symbol,并可以重寫[inspect]()函數(shù)。
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));
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前名稱:怎樣在控制臺(tái)將JSclass實(shí)例輸出為JSON格式-創(chuàng)新互聯(lián)
文章路徑:http://chinadenli.net/article44/dcpcee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、動(dòng)態(tài)網(wǎng)站、外貿(mào)建站、網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
移動(dòng)網(wǎng)站建設(shè)知識(shí)