मैं निम्नलिखित JSON है, और मुझे वर्ग की सरणी में यह पार्स करने के लिए करना चाहते हैं:गो भाषा में, मैं ऑब्जेक्ट की सरणी के लिए json unmarshal कैसे करूं?
{
"1001": {"level":10, "monster-id": 1001, "skill-level": 1, "aimer-id": 301}
"1002": {"level":12, "monster-id": 1002, "skill-level": 1, "aimer-id": 302}
"1003": {"level":16, "monster-id": 1003, "skill-level": 2, "aimer-id": 303}
}
यहाँ मुझे क्या करना कोशिश कर रहा हूँ है, लेकिन विफल रहा:
type Monster struct {
MonsterId int32
Level int32
SkillLevel int32
AimerId int32
}
type MonsterCollection struct {
Pool map[string]Monster
}
func (mc *MonsterCollection) FromJson(jsonStr string) {
var data interface{}
b := []byte(jsonStr)
err := json.Unmarshal(b, &data)
if err != nil {
return
}
m := data.(map[string]interface{})
i := 0
for k, v := range m {
monster := new(Monster)
monster.Level = v["level"]
monster.MonsterId = v["monster-id"]
monster.SkillLevel = v["skill-level"]
monster.AimerId = v["aimer-id"]
mc.Pool[i] = monster
i++
}
}
संकलक वी के बारे में शिकायत ["स्तर"] < < अमान्य ऑपरेशन। प्रकार इंटरफ़ेस की अनुक्रमणिका()।
वाह, बहुत बहुत धन्यवाद। मैं सिर्फ गो लांग सीख रहा हूं और अभी भी सीखने के लिए बहुत कुछ है। आपका जवाब बहुत उपयोगी है! – Nick
एक और सवाल, क्या वैसे भी मैं मानचित्र की कुंजी के लिए int32 का उपयोग कर सकता हूं? मूल्य राक्षस-आईडी होना चाहिए, लेकिन जब मैं टाइप को int32 में बदलता हूं, तो नमूना कोड त्रुटि देता है। – Nick
JSON कुंजी तार होना चाहिए। आपको जो करना है वह पहले 'मानचित्र [स्ट्रिंग] राक्षस' में पार्स है और फिर प्रत्येक राक्षस को' मानचित्र [int] राक्षस' पर कॉपी करें। –