@Gebert

Как правильно принять JSON?

Всем привет, я только изучаю GO.
Пытаюсь вытащить из JSON данные, как мне нужно, но застрял на следующем шаге.
Код:
package main

import (
	"encoding/json"
	"fmt"
)

type Photo struct {
	Photo [][]string `json:"photo"`
}

func main() {
	text := `{"photo":[["\/\/36.img.site.ru\/640x480\/3584457236.jpg","\/\/36.img.site.ru\/1280x960\/3584457236.jpg"],["\/\/82.img.site.ru\/640x480\/3584457582.jpg","\/\/82.img.site.ru\/1280x960\/3584457582.jpg"],["\/\/91.img.site.ru\/640x480\/3584458291.jpg","\/\/91.img.site.ru\/1280x960\/3584458291.jpg"],["\/\/10.img.site.ru\/640x480\/3584459210.jpg","\/\/10.img.site.ru\/1280x960\/3584459210.jpg"]]}`
	textBytes := []byte(text)
	Photos := Photo{}

	err := json.Unmarshal(textBytes, &Photos)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(Photos.Photo)
}


Получаю:
[[//36.img.site.ru/640x480/3584457236.jpg //36.img.site.ru/1280x960/3584457236.jpg] [//82.img.site.ru/640x480/3584457582.jpg //82.img.site.ru/1280x960/3584457582.jpg] [//91.img.site.ru/640x480/3584458291.jpg //91.img.site.ru/1280x960/3584458291.jpg] [//10.img.site.ru/640x480/3584459210.jpg //10.img.site.ru/1280x960/3584459210.jpg]]

Не могу понять как убрать "[[", "//" и "]]"
и как из этого вытащить файлы только с размером "1280x960"

https://play.golang.org/p/HOUg7SDmR7
  • Вопрос задан
  • 299 просмотров
Решения вопроса 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
// это вообще-то часть ссылки.

Все остальное это массив обычный...

fmt.Println(Photos.Photo[0][1])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Ololosha228
Есть классный пакет, под названием gjson. Как раз для таких случаев. Не идеальный, конечно, но для подобного парсинга самое то:

https://github.com/tidwall/gjson
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы