[JavaScript] TypeError: Converting circular structure to JSON 対策に fast-safe-stringify が便利
JSON.stringify で TypeError: Converting circular structure to JSON を出さないために fast-safe-stringify を使うと良いという話をご紹介します。
JSON.stringify を下記のような場合に使うと TypeError: Converting circular structure to JSON が発生します。
const o = { a: 1 }
o.o = o
console.log(JSON.stringify(o))
// TypeError: Converting circular structure to JSON
JSON.stringify の代わりに fast-safe-stringify を利用すると TypeError: Converting circular structure to JSON は発生せず、[Circular] という文字列に変換してくれます。
const safeStringify = require('fast-safe-stringify')
const o = { a: 1 }
o.o = o
console.log(safeStringify(o))
// '{"a":1,"o":"[Circular]"}'
同じ用途で json-stringify-safe がありますが、fast-safe-stringify の方が高速というベンチマークが GitHub 上に掲載されています。
以上、TypeError: Converting circular structure to JSON に遭遇しないように fast-safe-stringify を利用している、現場からお送りしました。