Отправляю json через js сокет, читаю сообщение на сервере go:
{"x":554,"y":236,"speed":"0","radius":"6","speedMax":"0","acceleration":"0","friction":"0.00","color":"#ffffff","border":"#000000","widthBorder":"3"}
пытаюсь преобразовать в структуру:
p := &Point{}
err = json.Unmarshal([]byte(message), &p)
if err != nil {
log.Print("err json:", err)
}
log.Println(p)
Выводит:
&{0 0 0 0 0 0 0 }
Собственно что я делаю не так? Ошбибок некаких не выводит.
Вот структура:
type Point struct {
x float64 `json:"x"`
y float64 `json:"y"`
speed float64 `json:"speed"`
speedMax float64 `json:"speedMax"`
acceleration float64 `json:"acceleration"`
radius float64 `json:"radius"`
friction float64 `json:"friction"`
color string `json:"color"`
border string `json:"border"`
widthBorder string `json:"widthBorder"`
}
Если float приходит вам в виде текста т.е. в кавычках, то надо в аннотации поля добавить ",string" чтобы Unmarshaller понял, что еще нужно преобразовать: https://play.golang.org/p/4p_-uudYlpJ
package main
import (
"encoding/json"
"fmt"
"log"
)
type Point struct {
X float64 `json:"x"`
Y float64 `json:"y"`
Speed float64 `json:"speed,string"`
SpeedMax float64 `json:"speedMaxs,string"`
Acceleration float64 `json:"acceleration,string"`
Radius float64 `json:"radius,string"`
Friction float64 `json:"friction,string"`
Color string `json:"color"`
Border string `json:"border"`
WidthBorder string `json:"widthBorder"`
}
func main() {
const in = `{"x":554,"y":236,"speed":"1","radius":"6","speedMax":"5","acceleration":"4","friction":"0.01","color":"#ffffff","border":"#000000","widthBorder":"3"}`
p := &Point{}
err := json.Unmarshal([]byte(in), p)
if err != nil {
log.Print("err json:", err)
}
fmt.Printf("%#v", p)
}
Обратите внимание как по разному закодированы и описаны x,y и остальные поля.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Мне нужно написать на typeScript типы для функции, которая принимает объект config, в свойствах которого записаны функции, а возвращает объект с теме...
такая проблема, уже неделю пытаюсь получить массив с имена участников гильдии, все мои попытки кончатся крахом, знает кто простой способ...
пытаюсь вывести компонент через алерт по нажатии кнопки, но что-то не получается, что же делать?