github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/encoding/json/indent.go (about) 1 // Copyright 2010 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package json 6 7 import "github.com/shogo82148/std/bytes" 8 9 // HTMLEscapeは、JSONエンコードされたsrcをdstに追加します。ただし、文字列リテラル内の<, >, &, U+2028およびU+2029 10 // 文字は\u003c, \u003e, \u0026, \u2028, \u2029に変更されます。 11 // これにより、JSONはHTMLの<script>タグ内に埋め込むのに安全になります。 12 // 歴史的な理由から、ウェブブラウザは<script>タグ内で標準的なHTMLエスケープを尊重しないため、 13 // 代替のJSONエンコーディングを使用する必要があります。 14 func HTMLEscape(dst *bytes.Buffer, src []byte) 15 16 // Compactは、無意味なスペース文字が省略された、JSONエンコードされたsrcをdstに追加します。 17 func Compact(dst *bytes.Buffer, src []byte) error 18 19 // Indentは、JSONエンコードされたsrcのインデント形式をdstに追加します。 20 // JSONオブジェクトまたは配列の各要素は、新しい、インデントされた行で始まり、 21 // その行はprefixで始まり、インデントのネストに応じてindentの1つ以上のコピーが続きます。 22 // dstに追加されるデータは、prefixやインデントで始まらないようになっています。 23 // これにより、他のフォーマットされたJSONデータ内に埋め込むのが容易になります。 24 // srcの先頭の空白文字(スペース、タブ、キャリッジリターン、改行)は削除されますが、 25 // srcの末尾の空白文字は保持され、dstにコピーされます。 26 // 例えば、srcが末尾のスペースを持っていない場合、dstも持ちません。 27 // srcが末尾の改行で終わる場合、dstも同様になります。 28 func Indent(dst *bytes.Buffer, src []byte, prefix, indent string) error