From 69a96f8fef8d2839f5af6d448adae71222af5f8a Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Thu, 22 Feb 2018 12:40:27 +0100 Subject: [PATCH] accounts: implement json unmarshalling of url --- accounts/url.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/accounts/url.go b/accounts/url.go index 47f9d8ee4b..400cfc9e0e 100644 --- a/accounts/url.go +++ b/accounts/url.go @@ -74,6 +74,22 @@ func (u URL) MarshalJSON() ([]byte, error) { return json.Marshal(u.String()) } +// MarshalJSON parses url. +func (u *URL) UnmarshalJSON(input []byte) error { + var textUrl string + err := json.Unmarshal(input, &textUrl) + if err != nil { + return err + } + url, err := parseURL(textUrl) + if err != nil { + return err + } + u.Scheme = url.Scheme + u.Path = url.Path + return nil +} + // Cmp compares x and y and returns: // // -1 if x < y