Untitled
unknown
plain_text
2 years ago
607 B
7
Indexable
package main
import (
"encoding/json"
"fmt"
)
type MyStruct struct {
A string `json:"A,omitempty"`
B *string `json:"B"`
}
func (s *MyStruct) MarshalJSON() ([]byte, error) {
if s.A == "" {
s.B = nil // Si A se omite, también omite B
}
type Alias MyStruct
return json.Marshal(&struct {
*Alias
}{Alias: (*Alias)(s)})
}
func main() {
myData := MyStruct{
A: "ValorA",
B: stringPointer("ValorB"),
}
jsonData, _ := json.Marshal(myData)
fmt.Println(string(jsonData))
}
func stringPointer(s string) *string {
return &s
}
Editor is loading...