mirror of
https://github.com/gin-gonic/gin.git
synced 2025-06-23 18:39:18 +08:00
* refactor(json): export json codec * feat(json): support custom json codec at runtime * chore(copyright): update copyright to 2025 gin core team * docs(gin): add custom json codec examples in doc file
43 lines
898 B
Go
43 lines
898 B
Go
// Copyright 2025 Gin Core Team. All rights reserved.
|
|
// Use of this source code is governed by a MIT style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
//go:build go_json
|
|
|
|
package json
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/goccy/go-json"
|
|
)
|
|
|
|
// Package indicates what library is being used for JSON encoding.
|
|
const Package = "github.com/goccy/go-json"
|
|
|
|
func init() {
|
|
API = gojsonApi{}
|
|
}
|
|
|
|
type gojsonApi struct{}
|
|
|
|
func (j gojsonApi) Marshal(v any) ([]byte, error) {
|
|
return json.Marshal(v)
|
|
}
|
|
|
|
func (j gojsonApi) Unmarshal(data []byte, v any) error {
|
|
return json.Unmarshal(data, v)
|
|
}
|
|
|
|
func (j gojsonApi) MarshalIndent(v any, prefix, indent string) ([]byte, error) {
|
|
return json.MarshalIndent(v, prefix, indent)
|
|
}
|
|
|
|
func (j gojsonApi) NewEncoder(writer io.Writer) Encoder {
|
|
return json.NewEncoder(writer)
|
|
}
|
|
|
|
func (j gojsonApi) NewDecoder(reader io.Reader) Decoder {
|
|
return json.NewDecoder(reader)
|
|
}
|