@tebunew

Как распарсить json?

Всем привет.

Есть data.json:

[
  {
    "database": {
    "id": "1",
    "access_token": "mxtM7SPJuTPDvy0",
    "chanel_id": "-106", 
    "timezone": "3",
    "time": "12452345"
  },
    "text": "Hello my chanel.",
    "photo_link": false,
    "audio_link": false,
    "mov_link":  false,
    "markdown": true,
  },

  {
    "database": {
      "id": "1",
      "access_token": "mxtM7SPJuTPDvy0",
      "chanel_id": "-10011",
      "timezone": "3",
      "time": "12452345"
      
    },
    "text": "Hello my chanel.",
    "photo_link": false,
    "audio_link": false,
    "mov_link":  false,
    "markdown": true
  },

  {
    "database": {
      "id": "1",
      "access_token": "mxtM7SPJuTPDvy0",
      "chanel_id": "-10011",
      "timezone": "3",
      "time": "12452345"
    },
    "text": "Hello my chanel.",
    "photo_link": false,
    "audio_link": false,
    "mov_link":  false,
    "markdown": true
  },

  {
    "database": {
      "id": "1",
      "access_token": "mxtM7SPJuTPDvy0",
      "chanel_id": "-100",
      "timezone": "3",
      "time": "12452345"
    },
    "text": "Hello my chanel.",
    "photo_link": false,
    "audio_link": false,
    "mov_link":  false,
    "markdown": true
  }

]


есть go код :

package main

import (
	"fmt"
	"os"
	"encoding/json"
)
type Config struct {
	Database struct {
		Id int `json:"id"`
		Access_token string `json:"access_token"`
		Chanel_id int64 `json:"chanel_id"`
		Timezone string `json:"timezone"`
		Time int `json:"time"`
	} `json:"database"`
	Text string `json:"text"`
	Photo_link string `json:"photo_link"`
	Audio_link string `json:"audio_link"`
	Mov_link string `json:"mov_link"`
	Markdown string`json:"markdown"`
}

func LoadConfiguration(file string)(Config, error) {
	var config Config
	configFile, err := os.Open(file)
	defer configFile.Close()
	if err != nil {
		return config, err
	}
	jsonParser := json.NewDecoder(configFile)
	err = jsonParser.Decode(&config)
	return config, err
}

func main() {
	config, _ := LoadConfiguration(`data.json`)
	fmt.Println(config.Database.Id)
}


Все время выдает пустую строку.
  • Вопрос задан
  • 371 просмотр
Пригласить эксперта
Ответы на вопрос 3
@PapaStifflera
Родился, вырос...
1. У вас в JSON массив. Соотвтетсвенно config должна быть объявлена как
var config []Config
2. Обработайте ошибку и, возможно, поймете в чем дело.
Ответ написан
Комментировать
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
У тебя в файле массив объектов, а ты пытаешься парсить объект
var config []Config = make([]Config)
типа того надо объявлять
Ответ написан
Комментировать
@ryan12
var config []Config = make([]Config)
JSON Formatter
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы