Próbuję odszyfrować tablicę JSON i umieścić ją w kawałku struktury. Czytałem, jak to zrobić, ale tylko jeśli tablica JSON zawiera klucze. Moja tablica JSON nie zawiera kluczy.Jak mogę iterować w tablicy JSON w Golang?
Usunąłem program do tylko części, w której obsługuje dane JSON. Kompiluje i można je znaleźć poniżej.
package main
// 2014-04-19
import (
"fmt"
"encoding/json"
)
type itemdata struct {
data1 int // I have tried making these strings
data2 int
data3 int
}
func main() {
datas := []itemdata{}
json.Unmarshal([]byte(`[["7293","1434","99646"],["4657","1051","23795"]]`), &datas)
// I have tried the JSON string without the qoutes around the numbers
fmt.Println(len(datas)) // This prints '2'
fmt.Println("This prints") // This does print
for i := range datas {
fmt.Println(datas[i].data1) // This prints '0', two times
}
fmt.Println("And so does this") // This does print
}
Rozglądałem się za takie rzeczy jak „Go Lang JSON dekodowania bez kluczy” i czytać artykuły (i „stron pakietów”) na stronie Go Lang. Mogę znaleźć wystarczającą ilość informacji o tym, jak pracować z Go i JSON, ale żaden z moich znalezionych artykułów nie wyjaśnia, jak to zrobić bez kluczy w tablicy JSON.
Nie byłoby dziwne, gdybym dostał błąd; Wartości JSON są liczbami ciągowymi (w ten sposób uzyskuję je jako dane wejściowe), ale próbuję umieścić je w liczbach całkowitych. Nie dostaję jednak błędu. Próbowałem tworzyć wartości w łańcuchach struct "itemdata", które nie pomogły. Usunięcie cudzysłowów z wartości JSON również nie pomogło.
Chciałbym wiedzieć, w jaki sposób mogę uczynić mojej tablicy JSON w kawałek "itemdata". Pierwsza z trzech wartości przechodzi do "itemdata.data1", druga w "itemdata.data2", a trzecia w "itemdata.data3".
Proszę dać mi znać, jeśli uważasz, że mogę poprawić moje pytanie.
Dzięki z góry,
Remi
Dziękuję za pomoc, że był szybki! Mogę po prostu umieścić je w kawałku struktury, przeplatając je, czy nie mogę? – Remi
Możesz dokonać takiej konwersji: http://play.golang.org/p/d-VrY58ovQ Czy tego chcesz? –
To jest egzakta, której szukałem! Dziękuję Ci. Przepraszam, że nie ustawiłem odpowiedzi jako "natychmiast", musiałem odczekać kilka minut. – Remi