json - Unmarshal _id to id wont work -
so structure looks this:
type article struct {     id bson.objectid `json:"id" bson:"_id,omitempty"`     langcode string `json:"langcode" bson:"langcode"`     authorid string `json:"authorid" bson:"authorid"`     authorname string `json:"authorname" bson:"authorname"`     articletype int64 `json:"type" bson:"type"`     title string `json:"title" bson:"title"`     intro string `json:"intro" bson:"intro"`     body string `json:"body" bson:"body"`     mainpic string `json:"mainpic" bson:"mainpic"`     tags string `json:"tags" bson:"tags"`     slug string `json:"slug" bson:"slug"`     dateadded time.time `json:"dateadded" bson:"dateadded"`     status int64 `json:"status" bson:"status"` }   and following snippet:
pagereturn.pagination = resultslist.pagination err = json.unmarshal(resultslist.results, &pagereturn.articles)   will return data without value _id database (i mean in json string id equal "")
if change     id bson.objectid json:"id" bson:"_id,omitempty"     id bson.objectid json:"_id" bson:"_id,omitempty"
value returned (actual _id value db returned)
i'm wondering how can avoid (but still need use json.unmarshal)
- unmarshal article struct, tag 
json:"_id" - two struct types differ tags can converted each other. 1 solution create articlebis type, tag 
json:"id"instead. convert article articlebis instance, marshal. 
another simple example:
package main  import "fmt" import "encoding/json"  type base struct {     firstname string `json:"first"` }  type struct {     base     lastname string `json:"last"` }  type b struct {     base     lastname string `json:"lastname"` }  func main() {     john := a{base: base{firstname: "john"}, lastname:"doe"}     john1 := b(john)     john_json, _ := json.marshal(john)     john1_json, _ := json.marshal(john1)     fmt.println(string(john_json))     fmt.println(string(john1_json)) }      
Comments
Post a Comment