Попытка разобрать данные в интерфейсе в golang - PullRequest
0 голосов
/ 09 мая 2018

Попытка разобрать данные в интерфейсе.Работает нормально.Но если я получаю доступ к res.page или res.Page не работает

Я получил следующее сообщение об ошибке:

res.Page undefined (type interface {} is interface with no methods)

Ниже мой код:

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    var res interface{}
    str := `{"page": 1, "fruits": ["apple", "peach"]}`
    json.Unmarshal([]byte(str), &res)
    fmt.Println(res.Page)
}

Спасибо ввперед.

1 Ответ

0 голосов
/ 09 мая 2018

interface {} определяет нулевые методы (и ofc нулевые поля).
Вам нужен интерфейс map [string] {}

Попробуйте это https://play.golang.org/p/WBwXKob4zdA

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    var res map[string]interface{}
    str := `{"page": 1, "fruits": ["apple", "peach"]}`
    json.Unmarshal([]byte(str), &res)
    fmt.Println(res["page"])
}

Вы можете проверить:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...