2016-03-20 24 views
0

Golang'daki bir json dosyasındaki bir dilimi nasıl okurum?Golang içinde bir json dosyasından bir dilim okuyun

["a","b","c","d"]

Bunu yapmak için ioutil.ReadFile kullanarak denedi, ama bu bir dize değil, bir dilim döndürür: Örneğin, dosya data.json buna benzer. Dilimi nasıl okuyabilirim?
NOT: Bu karmaşık json şeyler Örneğin

+0

O json olmak zorunda değildir. Ben sadece çalışmak istiyorum :) – XXX

+0

Sabit! Şimdi iyi mi? – XXX

cevap

4

yazmak için

olması Biliyor kullanarak.Gerçeği yapmış {}
parantez için parantez [] alt edebilir, ama kullanıcıyı istemiyorum
package main 

import (
    "encoding/json" 
    "fmt" 
    "io/ioutil" 
) 

func main() { 
    data, err := ioutil.ReadFile("data.json") 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 
    fmt.Print("data: ",string(data)) 
    var slice []string 
    err = json.Unmarshal(data, &slice) 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 
    fmt.Printf("slice: %q\n",slice) 
} 

Çıktı:

$ cat data.json 
["a","b","c","d"] 
$ go run data.go 
data: ["a","b","c","d"] 
slice: ["a" "b" "c" "d"] 
$ 
+1

Dosya büyükse, daha verimli olacağından 'json.NewDecoder' kullanıldığından bahsetmelisiniz. – OneOfOne