Я пытаюсь изменить кодировку в json, и использовал обе кодировки / json и jsoniter.Что я пытаюсь сделать, так это то, что если я предоставлю язык, он будет кодировать соответствующие имена полей как «name @ lang» вместо «name».Я попытался сделать следующее:
func registerFieldEncoder(field string) {
encoderFunc := func(p unsafe.Pointer, stream *jsoniter.Stream) {
fmt.Print("test")
str := *(*string)(unsafe.Pointer(p))
newstr := str + "@sv"
stream.WriteString(newstr)
}
isEmptyFunc := func(p unsafe.Pointer) bool {
str := *(*string)(unsafe.Pointer(p))
return len(str) == 0
}
jsoniter.RegisterTypeEncoderFunc(field, encoderFunc, isEmptyFunc)
jsoniter.RegisterFieldEncoderFunc("", field, encoderFunc, isEmptyFunc) }
Поле представляет тег json, т. Е.
`json:"field`
Возможно ли это сделать на ходу?