diff options
author | slan <slan@chromium.org> | 2015-04-21 17:46:37 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-22 00:47:40 +0000 |
commit | 5cacb5a8c68adf4614eb6448d673eb69f6a5bb27 (patch) | |
tree | f7bde0501e3e8ace0c695355306ed428c348a286 /chromecast/base/serializers.cc | |
parent | b8cf017a1764eaa72076ac052dac56368460db9d (diff) | |
download | chromium_src-5cacb5a8c68adf4614eb6448d673eb69f6a5bb27.zip chromium_src-5cacb5a8c68adf4614eb6448d673eb69f6a5bb27.tar.gz chromium_src-5cacb5a8c68adf4614eb6448d673eb69f6a5bb27.tar.bz2 |
Adds JSON serialization helper functions to chromecast/base.
Includes implementations and unittests for Serialize() and Deserialize().
BUG= internal b/20121400
Review URL: https://codereview.chromium.org/1098743003
Cr-Commit-Position: refs/heads/master@{#326195}
Diffstat (limited to 'chromecast/base/serializers.cc')
-rw-r--r-- | chromecast/base/serializers.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/chromecast/base/serializers.cc b/chromecast/base/serializers.cc new file mode 100644 index 0000000..366a5d2 --- /dev/null +++ b/chromecast/base/serializers.cc @@ -0,0 +1,33 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromecast/base/serializers.h" + +#include "base/json/json_string_value_serializer.h" +#include "base/logging.h" + +namespace chromecast { + +scoped_ptr<base::Value> DeserializeFromJson(const std::string& text) { + JSONStringValueDeserializer deserializer(text); + + int error_code; + std::string error_msg; + scoped_ptr<base::Value> value( + deserializer.Deserialize(&error_code, &error_msg)); + DLOG_IF(ERROR, !value) << "JSON error " << error_code << ":" << error_msg; + + // Value will hold the nullptr in case of an error. + return value.Pass(); +} + +scoped_ptr<std::string> SerializeToJson(const base::Value& value) { + scoped_ptr<std::string> json_str(new std::string()); + JSONStringValueSerializer serializer(json_str.get()); + if (!serializer.Serialize(value)) + json_str.reset(nullptr); + return json_str.Pass(); +} + +} // namespace chromecast |