首页 > 解决方案 > 尝试读取 JSON 时函数体外部的非声明语句

问题描述

我在以下代码中遇到以下两个错误,并且无法编译。我不太确定我在这段代码中做错了什么。这是我的错误: .\app.go:52:52: 语法错误:意外},需要逗号或 ) .\app.go:55:1: 语法错误:函数体外的非声明语句。我不知道在下面的代码中还要检查什么。任何帮助,将不胜感激

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
    "time"
)

type Results struct {
    Results []Result `json:"results"`
}

type Result struct {
    Name   string  `json:"name"`
    Rating float64 `json:"rating"`
}

func main() {
    url := "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=33.985,-118.4695&radius=500&type=restaurant&key=MYKEY"

    resultClient := http.Client{
        Timeout: time.Second * 2,
    }

    req, err := http.NewRequest(http.MethodGet, url, nil)
    if err != nil {
        log.Fatal(err)
    }

    req.Header.Set("User-Agent", "eattheshoals")

    res, getErr := resultClient.Do(req)
    if getErr != nil {
        log.Fatal(getErr)
    }

    byteValue, _ := ioutil.ReadAll(res.Body)
    //if readErr != nil {
    //  log.Fatal(readErr)
    //}

    var results Results
    jsonErr := json.Unmarshal(byteValue, &results)
    if jsonErr != nil {
        log.Fatal(jsonErr)
    }

    for i := 0; i < len(results.Results); i++ {
        fmt.Println("Name " + results.Results[i].Name)
        fmt.Println("Rating " + results.Results[i].Rating})
    }
}

标签: jsongoweb

解决方案


你的最后一个 Println 中有一个额外的护腕


推荐阅读