2016-07-12 22 views
2

Hallo Podio Menschen (und vielleicht genauer gesagt Andreas),Golang Zugang roh Podio Feldwerte

Ich versuche, immer tiefer in die Golang API-Bibliothek zu graben, aber in meiner Rookie Golang Fähigkeiten stoßen.

Nach einem client.getItems(...) Aufruf möchte ich Schleife über die Felder innerhalb der Elemente und nur relevante Teile greifen. Das Endziel ist, dass ich

{ 
    1000: "John", // key = app field id, value = text 
    5490: [{item_id: 4031294, app_id: 94392}], // relations 
    5163: [1,2,5] // categories 
} 

eine sehr vereinfachte json Objekt wie diese erstellen kann aber ich kann nicht einen Halt der item.Fields verschachtelten Values Struktur zu erhalten scheinen {}. Ich habe versucht, zu reflektieren, aber ohne Glück.

Könnte jemand mir helfen, diesen Code bitte zu vervollständigen?

for _, field := range item.Fields { 
    switch field.PartialField.Type { 
    case "text": 
    simpleValue := field.Values.Value // not working as I can't access Value in struct {} 
    } 
} 

Grüße, PJ

+1

Können Sie uns nicht in Panik bieten mit einem Beispiel der Eingabestruktur, aus der Sie Teile extrahieren möchten? – TehSphinX

+0

Hallo TehSphinX. Hier ist ein Beispiel der Eingabestruktur: https://github.com/andreas/podio-go/blob/master/item.go#L39 und https://github.com/andreas/podio-go/blob/master /item.go#L98 – pjmuller

Antwort

2

Versuchen ein type assertion

myTexts := field.Values.([]TextValue) 

Sie auch für eine gültige Behauptung überprüfen, damit Ihr Programm nicht

myTexts, assertionSucceeded := field.Values.([]TextValue) 
+0

Hallo Benjamin, danke für deine schnelle Antwort. Mit Ihrem ersten Snippet bekomme ich 'Fehler: Interface-Konvertierung: Interface ist [] Interface {}, nicht [] podio.TextValue' und mit dem zweiten failed es still und' myTexts' hat keine Werte – pjmuller

+0

Btw, 'field.Values . ([] interface {}) 'funktioniert, aber ich kann nicht herausfinden, wie man dann die' Werte' aus der Map holt. – pjmuller

+0

Probieren Sie eine For-Schleife auf das Ergebnis der Assertion –