package gjson // Default configuration values (matching lua-cjson defaults) const ( defaultEncodeSparseConvert = false defaultEncodeSparseRatio = 2 defaultEncodeSparseSafe = 10 defaultEncodeMaxDepth = 1000 defaultDecodeMaxDepth = 1000 defaultEncodeNumberPrecision = 14 defaultEncodeKeepBuffer = true defaultEncodeSortKeys = false // 默认不排序,保持高性能 ) // sparseArrayConfig controls sparse array handling during encoding. type sparseArrayConfig struct { convert bool // true: convert to object, false: raise error ratio int // sparse ratio threshold safe int // safe threshold (arrays smaller than this are not checked) } // Config holds all configuration options for a GJSON instance. type Config struct { encodeSparseArray sparseArrayConfig encodeMaxDepth int decodeMaxDepth int encodeNumberPrecision int encodeKeepBuffer bool encodeSortKeys bool // 是否对 object 键排序(稳定输出) } // defaultConfig returns a new Config with default values. func defaultConfig() *Config { return &Config{ encodeSparseArray: sparseArrayConfig{ convert: defaultEncodeSparseConvert, ratio: defaultEncodeSparseRatio, safe: defaultEncodeSparseSafe, }, encodeMaxDepth: defaultEncodeMaxDepth, decodeMaxDepth: defaultDecodeMaxDepth, encodeNumberPrecision: defaultEncodeNumberPrecision, encodeKeepBuffer: defaultEncodeKeepBuffer, encodeSortKeys: defaultEncodeSortKeys, } }