मेरे पास निम्न कोड है, मैं सभी तत्वों की सीमा चाहता हूं या birds["eagle"["quote"][2] जैसे एक तत्व तक पहुंचना चाहता हूं लेकिन मैं इसका पता नहीं लगा सकता

package main

import (
    "fmt"
    "encoding/json"
)

func main() {
    birdJson := `{"birds": {"pigeon": {"quotes": "love the pigeons"}, "eagle": {"quotes": ["bird of prey", "soar like an eagle", "eagle has no fear"]}}}`

    var result map[string]interface{}
    json.Unmarshal([]byte(birdJson), &result)
    birds := result["birds"].(map[string]interface{})

    fmt.Printf("%v\n",birds)
    eagle := birds["eagle"]

    for key, value := range eagle {
        fmt.Println(key, value.(string))
    }
}

गो खेल का मैदान

-1
tjoe 26 फरवरी 2019, 12:48

1 उत्तर

सबसे बढ़िया उत्तर

कुछ मुद्दे हैं:

eagle := birds["eagle"] //eagle is of type interface{}

तो इसे मानचित्र में डालें:

eagle := birds["eagle"].(map[string]interface{})

अब आप इस पर पुनरावृति कर सकते हैं:

for key, value := range eagle { 
        for _, e := range value.([]interface{}){
         fmt.Println(key, e.(string))
        }
    }

Value यहाँ फिर से इंटरफ़ेस है। तो पहले []इंटरफ़ेस{} और फिर स्ट्रिंग पर कास्ट करें।
यहाँ पूर्ण कार्य कोड है: https://play.golang.org/p/Bdnwit1wBYh

5
Saurav Prakash 26 फरवरी 2019, 09:55