Ayuda con instancia de estructura

32 views
Skip to first unread message

Sanx El Santo

unread,
Mar 15, 2016, 8:11:17 PM3/15/16
to golang-spanish
Saludos

Necesito crear una instacia de la siguiente estructura:

type Term struct {
    Size string `json:"size"`
    Query struct {
        Match struct {
            All struct {
                Query string `json:"query"`
                Operator string `json:"operator"`
            } `json:"_all"`
        } `json:"match"`
    } `json:"query"`
    Sort []struct {
        Colonia struct {
            Order string `json:"order"`
            Mode string `json:"mode"`
        } `json:"colonia"`
    } `json:"sort"`
   
}

mi instancia es esta:

    term := Term{
        Size : "10",
        Query : {
            Match : {
                All : {
                    Query : param
                    Operator "and"
                }
            }
        },
        Sort []struct {
            Colonia struct {
                Order : "asc"
                Mode : "avg"
            }
        }
    }

Pero al compilar me muestra lo siguientes errores:

./json.go:36: syntax error: unexpected semicolon or newline, expecting comma or }
./json.go:38: syntax error: unexpected semicolon or newline, expecting comma or }
./json.go:39: syntax error: unexpected semicolon or newline, expecting comma or }
./json.go:41: syntax error: unexpected ], expecting expression
./json.go:41: missing index in index expression
./json.go:47: syntax error: non-declaration statement outside function body

El problema es que no logro identificar que es lo me falta o que es lo que estoy haciendo mal.

Alguien me puede ayudar por favor
Gracias a todos por su atención
Hasta pronto.


El código que estoy compilando es este:


package main

import (
    "fmt"
)

type Term struct {
    Size string `json:"size"`
    Query struct {
        Match struct {
            All struct {
                Query string `json:"query"`
                Operator string `json:"operator"`
            } `json:"_all"`
        } `json:"match"`
    } `json:"query"`
    Sort []struct {
        Colonia struct {
            Order string `json:"order"`
            Mode string `json:"mode"`
        } `json:"colonia"`
    } `json:"sort"`
   
}


func main() {

    param := "villa"

    term := Term{
        Size : "10",
        Query : {
            Match : {
                All : {
                    Query : param
                    Operator "and"
                }
            }
        },
        Sort []struct {
            Colonia struct {
                Order : "asc"
                Mode : "avg"
            }
        }
    }

    js, _ := json.Marshal(term)
    fmt.Printf("%s", js)

}

Cesar Alvarado Peragallo

unread,
Mar 17, 2016, 8:43:04 AM3/17/16
to golang-spanish

Aqui una solucion:

package main

import (
"encoding/json"
"fmt"
)

type All struct {
Query    string `json:"query"`
Operator string `json:"operator"`
}

type Match struct {
All All `json:"all"`
}

type Colonia struct {
Order string `json:"order"`
Mode  string `json:"mode"`
}

type Sort struct {
Colonia Colonia `json:"colonia"`
}

type Query struct {
Match Match `json:"match"`
}

type Term struct {
Size  string `json:"size"`
Query Query  `json:"query"`
Sort  []Sort `json:"sort"`
}

func main() {

param := "villa"

var term Term

all := All{param, "and"}

colonia := Colonia{"asc", "avg"}

sort1 := Sort{colonia}

sort := []Sort{sort1}

term.Size = "10"
term.Query.Match.All = all
term.Sort = sort

Sanx El Santo

unread,
Mar 30, 2016, 5:01:03 PM3/30/16
to golang-...@googlegroups.com
Cesar muchas gracias por tu ayuda

Me fue muy útil tu aportación!!!

Saludos

--

---
Has recibido este mensaje porque estás suscrito a un tema del grupo "golang-spanish" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/golang-spanish/4IHlUlPDnFI/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a golang-spanis...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages