type Struct struct {
Value string `json:"value"`
Value1 string `json:"value_one"`
Nest Nested `json:"nest"`
}
type Nested struct {
Something string `json:"something"`
}
Başka bir yapı türü oluşturmadan yapı tanımlarında olmayan elemanlar eklemek istiyorum. ÖrneğinGolang, json yapısını değiştirmeden yapılandırın.
Struct.Extra1 = Nested{"yy"}
Struct.Nested.Extra2 = "zz"
için
{
"Value": "xx",
"Value1": "xx",
"Extra1": {
"Something", "yy"
},
"Nest": {
"Something": "xx",
"Extra2": "zz"
}
}
Solution1 sonuçlanacaktır Hangi: Bunu başarmak için omitempty
ekleyerek düşündüm ama yapılar kompleks hale getirir.
type Struct struct {
Value string
Value1 string
Nest Nested
Extra1 Nested `json:"omitempty"`
}
type Nested struct {
Something string
Extra2 string `json:"omitempty"`
}
SOLUTION2:
myextras := make(map[string]interface{})
// get Struct.Nested in map[string]interface{} format
myextras = Struct.Nest
myextras["Extra2"] = "zz"
// get Struct in map[string]interface{} format
struct["Nest"] = myextras
struct["Extra1"] = Nested{"yy"}
// solves the problem with lots of type casting but doesn't support json tag naming
json etiketi desteği ile yapı veri türü temsil edilmeyen ve kullanıcıya çıkış için kullanılabilecek iç içe unsurları eklemek için daha iyi bir çözüm var mı.
Thats bir yorum "olmak" (bu bir yorum olarak alanın büyük bir kaybı olsa bile) - ihraç edilmediğinden, serileştirmeden daha fazlasını önlemek için "json:" - "' a ihtiyacınız olmadığını unutmayın. –
Bilgi için @NateFinch teşekkürler, mantıklı. Onu senin adına düzenliyorum. –