मैंने गो में एक एपीआई बनाया है, जिसे कॉल करने पर, एक क्वेरी करता है, एक संरचना का एक उदाहरण बनाता है, और फिर कॉल करने वाले को वापस भेजने से पहले उस संरचना को JSON के रूप में एन्कोड करता है। मैं अब कॉल करने वाले को उन विशिष्ट क्षेत्रों का चयन करने में सक्षम होना चाहता हूं, जिन्हें वे "फ़ील्ड" जीईटी पैरामीटर में पास करके लौटना चाहते हैं।
इसका मतलब है कि खेतों के मूल्य के आधार पर, मेरी संरचना बदल जाएगी। क्या किसी संरचना से खेतों को हटाने का कोई तरीका है? या कम से कम उन्हें JSON प्रतिक्रिया में गतिशील रूप से छिपाएं? (ध्यान दें: कभी-कभी मेरे पास खाली मान होते हैं इसलिए JSON omitEmpty टैग यहां काम नहीं करेगा) यदि इनमें से कोई भी संभव नहीं है, तो क्या इसे संभालने के लिए बेहतर तरीके पर कोई सुझाव है? अग्रिम में धन्यवाद।
मेरे द्वारा उपयोग किए जा रहे स्ट्रक्चर्स का एक छोटा संस्करण नीचे दिया गया है:
type SearchResult struct {
Date string `json:"date"`
IdCompany int `json:"idCompany"`
Company string `json:"company"`
IdIndustry interface{} `json:"idIndustry"`
Industry string `json:"industry"`
IdContinent interface{} `json:"idContinent"`
Continent string `json:"continent"`
IdCountry interface{} `json:"idCountry"`
Country string `json:"country"`
IdState interface{} `json:"idState"`
State string `json:"state"`
IdCity interface{} `json:"idCity"`
City string `json:"city"`
} //SearchResult
type SearchResults struct {
NumberResults int `json:"numberResults"`
Results []SearchResult `json:"results"`
} //type SearchResults
मैं तो सांकेतिक शब्दों में बदलना और उत्पादन की तरह प्रतिक्रिया:
err := json.NewEncoder(c.ResponseWriter).Encode(&msg)