| 12345678910111213141516171819202122232425 |
- package extra
- import (
- "github.com/json-iterator/go"
- "unicode"
- )
- // SupportPrivateFields include private fields when encoding/decoding
- func SupportPrivateFields() {
- jsoniter.RegisterExtension(&privateFieldsExtension{})
- }
- type privateFieldsExtension struct {
- jsoniter.DummyExtension
- }
- func (extension *privateFieldsExtension) UpdateStructDescriptor(structDescriptor *jsoniter.StructDescriptor) {
- for _, binding := range structDescriptor.Fields {
- isPrivate := unicode.IsLower(rune(binding.Field.Name[0]))
- if isPrivate {
- binding.FromNames = []string{binding.Field.Name}
- binding.ToNames = []string{binding.Field.Name}
- }
- }
- }
|