Как вывести определенное значение из JSON в Голанге - PullRequest
0 голосов
/ 25 октября 2018

Не совсем уверен, как получить доступ к интересующему меня значению. У меня есть ответ от моего couchDB, который выглядит следующим образом:

ответ от couchDB в формате json

Что меня интересует, так это получить значения "name" и "phone" с помощью golang.

Если я запускаю этот код, я по крайней мере получаю значение идентификатора или ключа:

package main

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

type rows struct{
    Rows []info `json:"rows"`
}

type info struct{
    Name string `json:"id"`
}


func main() {
    resp, err := http.Get("http://localhost:5984/mydb/_all_docs?include_docs=true")
    bytes, _ := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println(err)
        return
    }

    var d rows
    json.Unmarshal(bytes, &d)
    fmt.Println(d)
}

Вывод из сценария

Итак, япопытался сделать это таким образом, чтобы получить «имя» для стартера:

package main

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

type rows struct{
    Rows []doc `json:"rows"`
}

type doc struct {
  Values []info `json:"doc"`
}

type info struct{
    Name string `json:"name"`
}


func main() {
    resp, err := http.Get("http://localhost:5984/mydb/_all_docs?include_docs=true")
    bytes, _ := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println(err)
        return
    }

    var d rows
    json.Unmarshal(bytes, &d)
    fmt.Println(d)
}

Но получить этот ответ: Вывод из сценария

Я довольно новичок в Голанге, ноочень хочу научиться создавать простой API с его помощью, если есть другие способы сделать это в golang, пожалуйста, дайте мне знать

1 Ответ

0 голосов
/ 25 октября 2018

Вот как я мог бы подойти к этой проблеме

1) получить пример вывода json и посетить веб-сайт https://mholt.github.io/json-to-go/

Используйте это для автоматического создания структуры, которая соответствует вашим данным. Возможно, вам понадобитсячтобы настроить то, что он делает, чтобы получить структуру "row" struct

2) Используя только что разработанные структуры, загрузите данные с помощью Unmarshall

3) сбросьте данные с помощью% v Printfформат, чтобы посмотреть на него, а затем выяснить, как получить имя и элементы телефона

У вас есть пример кода здесь, но ваши данные примера в картинке, поэтому для их воспроизведения требуется много времени: извините: /

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