Marjinali, bağlamına bağlı olarak JSON'a farklı bir yapıya sahip yapıyorum.JSON marshalling/unmarshalling aynı yapıya farklı JSON biçiminde mi gidiyor?
type MyStruct struct {
Nickname string `json:"nickname"`
EmailAddress string `json:"email_address"`
PhoneNumber string `json:"-"`
MailingAddress string `json:"-"`
}
Ve bazen böyle sıralamakta istiyorum:
Örneğin, bazen böyle sıralamakta istiyorum
type MyStruct struct {
Nickname string `json:"nickname"`
EmailAddress string `json:"email_address"`
PhoneNumber string `json:"phone_number"`
MailingAddress string `json:"mailing_address"`
}
olmadan bunu yapmak için basit bir yolu var mı:
- 2 ayrı yapı oluşturma.
- Özel bir mareşal yazarak.
- PhoneNumber ve MailingAddress öğesinin dize değerlerini (etikette bir ihmalkarlıkla) geçici olarak kaldırarak, sonraları yeniden birleştirip yeniden ekleyin.
- etiketleri 2 takım belirtin ve hangilerinin kullanmak sıralayıcısı söyleyin:
Keşke bir yolu yoktu.
- Etiketleri çalışma zamanında dinamik olarak değiştirin.
Bu hayal çok daha basit oldu. Bu yaklaşımın bir kombinasyonunu ve burada anlatılanları kullanarak sona erdim: http://attilaolah.eu/2014/09/10/json-and-struct-composition-in-go/ –
Referans için bazı linkler: Marshaler http://golang.org/pkg/encoding/json/#Marshaler yazın. Blog makale: http://blog.golang.org/json-and-go –
Aynı prensip, unshashalling için de geçerli olacaktır - http://golang.org/pkg/encoding/json/#Unmarshaler –