REST API + MongoDb ISODate

Моята GoLang структура:

type myPojo struct {
    ID                bson.ObjectId                 `json:"id" bson:"_id,omitempty"`
    Start             time.Time                     `json:"start"`
}

POST API JSON входна заявка:

{
    "Start":ISODate("2013-10-01T00:00:00.000Z")
}

Моят код за преобразуване на входна JSON заявка в Golang Struct:

func myPostApi(w http.ResponseWriter, r *http.Request, db mongoDB) {
    w.Header().Set("Content-Type", "application/json")
    decoder := json.NewDecoder(r.Body)
    var inputObj myPojo
    err := decoder.Decode(&inputObj)

    if err != nil {
        //This gets executed
        log.Println("Error occurred converting POST input json to myPojo data.")
        log.Println(err)
    }
}

Кодът по-горе не може да конвертира и влиза в грешка, ако блокира и се отпечата по-долу, моля, помогнете.

2018/02/25 22:12:44 Error occurred converting POST input json to myPojo data.
2018/02/25 22:12:44 invalid character 'I' looking for beginning of value

person Nikhil Joshi    schedule 25.02.2018    source източник
comment
Каква беше грешката, ако го разпечатате?   -  person Mark    schedule 26.02.2018
comment
Здравей @Mark, добавен невалиден знак за грешка „I“ в търсене на начало на стойност в основния въпрос, благодаря, че го разгледахте.   -  person Nikhil Joshi    schedule 26.02.2018
comment
Тази грешка предполага, че тялото на заявката не може да бъде декодирано, защото не е валиден json. Погледнете внимателно тялото на заявката и проверете дали е валиден json според json спецификацията.   -  person Mark    schedule 26.02.2018


Отговори (1)


The

ISODate("2013...")

стойността не е валиден JSON. Това изглежда като символ или извикване на функция, нито едно от които не е разрешено в JSON. И няма тип дата в JSON:

Правилният JSON формат за дата

person Jonah Benton    schedule 25.02.2018