v2.go: Use custom JSON value type to convert numbers to strings.
This commit is contained in:
parent
42f4ccefc6
commit
774278ac6a
|
@ -39,8 +39,19 @@ type v2Form interface {
|
|||
Get(string) string
|
||||
}
|
||||
|
||||
// Converts non-string values (such as numbers) to strings.
|
||||
type v2JsonValue string
|
||||
|
||||
func (self *v2JsonValue) UnmarshalJSON(data []byte) error {
|
||||
if len(data) > 0 && data[0] == '"' {
|
||||
return json.Unmarshal(data, (*string)(self))
|
||||
}
|
||||
*self = v2JsonValue(data)
|
||||
return nil
|
||||
}
|
||||
|
||||
type v2MapForm struct {
|
||||
form map[string]json.Number
|
||||
form map[string]v2JsonValue
|
||||
}
|
||||
|
||||
func (self *v2MapForm) Get(key string) string {
|
||||
|
@ -62,8 +73,7 @@ func v2GetQuery(r *http.Request) v2Form {
|
|||
return r.Form
|
||||
}
|
||||
|
||||
// Because json.Number extends string it can be used for strings.
|
||||
form := make(map[string]json.Number)
|
||||
form := make(map[string]v2JsonValue)
|
||||
(&HTTPRequest{Request: r}).Unmarshal(&form)
|
||||
return &v2MapForm{form}
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ import (
|
|||
)
|
||||
|
||||
const SYMBOL = "¤"
|
||||
const VERSION = "3.0.2"
|
||||
const VERSION = "3.0.3"
|
||||
|
||||
// Note that public source code is required by the AGPL
|
||||
const SOURCE_URL = "https://github.com/luk3yx/lurkcoin-core"
|
||||
|
|
Loading…
Reference in New Issue