Golang Jsonテスト
3404 ワード
構造体はGoogle検索API
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
)
type Datas struct {
Kind string `json:"kind"`
URL struct {
Type string `json:"type"`
Template string `json:"template"`
} `json:"url"`
Queries struct {
Request []struct {
Title string `json:"title"`
TotalResults string `json:"totalResults"`
SearchTerms string `json:"searchTerms"`
Count int `json:"count"`
StartIndex int `json:"startIndex"`
InputEncoding string `json:"inputEncoding"`
OutputEncoding string `json:"outputEncoding"`
Safe string `json:"safe"`
Cx string `json:"cx"`
} `json:"request"`
NextPage []struct {
Title string `json:"title"`
TotalResults string `json:"totalResults"`
SearchTerms string `json:"searchTerms"`
Count int `json:"count"`
StartIndex int `json:"startIndex"`
InputEncoding string `json:"inputEncoding"`
OutputEncoding string `json:"outputEncoding"`
Safe string `json:"safe"`
Cx string `json:"cx"`
} `json:"nextPage"`
} `json:"queries"`
Context struct {
Title string `json:"title"`
} `json:"context"`
SearchInformation struct {
SearchTime float64 `json:"searchTime"`
FormattedSearchTime string `json:"formattedSearchTime"`
TotalResults string `json:"totalResults"`
FormattedTotalResults string `json:"formattedTotalResults"`
} `json:"searchInformation"`
Items []struct {
Kind string `json:"kind"`
Title string `json:"title"`
HTMLTitle string `json:"htmlTitle"`
Link string `json:"link"`
DisplayLink string `json:"displayLink"`
Snippet string `json:"snippet"`
HTMLSnippet string `json:"htmlSnippet"`
CacheID string `json:"cacheId"`
FormattedURL string `json:"formattedUrl"`
HTMLFormattedURL string `json:"htmlFormattedUrl"`
Pagemap struct {
Metatags []struct {
Author string `json:"author"`
Copyright string `json:"copyright"`
} `json:"metatags"`
} `json:"pagemap,omitempty"`
} `json:"items"`
}
func main() {
buf, err := ioutil.ReadFile("C:/ /Go/ /search.json")
if err != nil {
log.Println(err)
}
//log.Println(string(buf))
//log.Println()
//str := string(buf)
//log.Println(str)
log.Println()
var d Datas
err = json.Unmarshal(buf, &d)
if err != nil {
fmt.Println(err)
}
fmt.Println("look:")
fmt.Println(d.Items[0].Link)
}