Git Product home page Git Product logo

Comments (3)

bilus avatar bilus commented on May 10, 2024

UPDATE: The following works (using single email instead of a slice):

package main

import (
	"fmt"
	"github.com/gorilla/schema"
)

type Email struct {
	Address string
}

func (e *Email) UnmarshalText(text []byte) (err error) {
	s := string(text)
	e.Address, err = s, nil
	return
}

type Person struct {
	Name   string
	Email // <- change
}

func main() {
	v := map[string][]string{
		"name": {"John"},
		"email": {"foo"},  // <- changes
	}
	var p Person

	err := schema.NewDecoder().Decode(&p, v)
	if err != nil {
		fmt.Println(err)
	}

	fmt.Println(p)
}

from schema.

bilus avatar bilus commented on May 10, 2024

I THINK I kinda understand what is going on here. Can someone verify my way of thinking?

TL;DR Because the lib thinks this is a struct, it assumes I'll be using syntax for using structs, e.g. (emails.0=xxx). My use case is this:

Given the following query string ?items=foo.bar,baz.qux I want to split each item on . and create a struct, e.g.

type Item struct {
  field0 string
  field1 string
}

Does the use case make sense at all? Should I use UnmarshalText for this or sth else?

from schema.

stale avatar stale commented on May 10, 2024

This issue has been automatically marked as stale because it hasn't seen a recent update. It'll be automatically closed in a few days.

from schema.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.