Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

提醒:JSON.stringify 可以从 JSON 创建多行、格式化和过滤的字符串

Posted on 2022-10-28

在浏览器控制台中显示的示例的演示输出

您可以使用 `JSON.stringify()` 将JSON对象转换为字符串。


让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj))

这会产生一个单行字符串:


{一个!”}

但是,您也可以设置两个可选参数,一个过滤数组或回调方法和一个缩进参数。例如,将缩进设置为 4 会创建一个具有 4 个空格缩进的多行字符串:


让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, false, 4))

输出:


{

“一”:1,
“乙”:3,
“c”:“嘘!”
}

如果您想要制表符而不是空格,您还可以将缩进参数定义为字符串:


让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, false, “t”))

输出:


{

“一”:1,
“乙”:3,
“c”:“嘘!”
}

或任何其他字符串:


让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, false, “xxx”))

输出:


{

xxx“a”:1,
xxx“b”:3,
xxx“c”:“嘘!”
}

您可以定义要显示的键数组来过滤结果:


让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, ['a','c'], 4))

输出:


{

“一”:1,
“c”:“嘘!”
}

您可以编写一个过滤回调函数,将其应用于JSON对象。例如,只允许显示数字:


const onlyNumbers = (key,value) => {
返回(类型值==='字符串')?未定义:值
}

让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, onlyNumbers, 4))

输出:


{

“一”:1,
“乙”:3
}

您可以在MDN上看到更多示例。

虽然我喜欢这些选项,但当一种方法允许不同的值来确定要做什么时,我总是觉得很奇怪。让替换器是数组或回调,而空格选项是数字或字符串会让人感到困惑。你怎么看?

原文: https://christianheilmann.com/2022/10/28/reminder-json-stringify-can-create-multi-line-formatted-and-filtered-strings-from-json/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme