view pkg/common/json.go @ 2309:77adbdd24d52

client: fix drawing perormance * Change the vector drawing style of LOS 1 and LOS 2 layers, because hte old dash segments array posed a problem for chromium (observed with 71.0.3578.80-1~deb9u1).
author Bernhard Reiter <bernhard@intevation.de>
date Mon, 18 Feb 2019 15:33:01 +0100
parents 24445a618513
children 6270951dda28
line wrap: on
line source

// This is Free Software under GNU Affero General Public License v >= 3.0
// without warranty, see README.md and license for details.
//
// SPDX-License-Identifier: AGPL-3.0-or-later
// License-Filename: LICENSES/AGPL-3.0.txt
//
// Copyright (C) 2018 by via donau
//   – Österreichische Wasserstraßen-Gesellschaft mbH
// Software engineering by Intevation GmbH
//
// Author(s):
//  * Sascha L. Teichmann <sascha.teichmann@intevation.de>

package common

import (
	"encoding/json"
	"strings"
)

// FromJSONString revives data from a JSON string.
func FromJSONString(data string, dst interface{}) error {
	return json.NewDecoder(strings.NewReader(data)).Decode(dst)
}

// ToJSONString serializes src into a string to
// be revived by FromJSONString.
func ToJSONString(src interface{}) (string, error) {
	var b strings.Builder
	if err := json.NewEncoder(&b).Encode(src); err != nil {
		return "", err
	}
	return b.String(), nil
}