2017-10-06 4 views
-2

Ich habe ein Problem beim Zugriff auf Felder nach Index. Diese Bibliothek https://github.com/buger/jsonparserjsonparser Zugriff Felder nach Index

Beispiel von https://github.com/buger/jsonparser:

// Or use can access fields by index! 
jsonparser.GetInt("person", "avatars", "[0]", "url") 

Mein Code:

package main 

    import (
     "github.com/buger/jsonparser" 
     "fmt" 
    ) 
    func main() { 
     data := []byte(`{ 
     "person": { 
      "name": { 
      "first": "Leonid", 
      "last": "Bugaev", 
      "fullName": "Leonid Bugaev" 
      }, 
      "github": { 
      "handle": "buger", 
      "followers": 109 
      }, 
      "avatars": [ 
      { 
       "url": "https://avatars1.githubusercontent.com/u/14009?v=3&s=460", 
       "type": "thumbnail" 
      } 
      ] 
     }, 
     "company": { 
      "name": "Acme" 
     } 
     }`) 

     fmt.Println(jsonparser.GetInt(data, "person", "[2]", "[0]", "url")) 
    } 

Ergebnis im Terminal: 0 Schlüsselpfad nicht gefunden

Antwort

2

Die Person ist kein Array, sodass Sie nicht per Index darauf zugreifen können.

+0

Was muss ich tun, um Objekt für Index zugreifen zu können? –

+0

Sie können nicht auf Objekte nach Index zugreifen, da sie nicht indiziert sind. Sie sind nicht sortiert. Der Schlüssel für den Wert, auf den Sie zugreifen möchten, ist keine Nummer, Sie können ihn also nicht mit einer Zahl aufrufen. Stellen Sie sich vor, dass Sie als HashMap nicht genauso auf die Kartenwerte mit Zahlen zugreifen können – raam86