7#include <google/protobuf/struct.pb.h>
8#include <google/protobuf/util/json_util.h>
10#include <userver/formats/json/serialize.hpp>
11#include <userver/formats/json/value.hpp>
13USERVER_NAMESPACE_BEGIN
19extern const google::protobuf::util::JsonPrintOptions kDefaultJsonPrintOptions;
20extern const google::protobuf::util::JsonParseOptions kDefaultJsonParseOptions;
22void FromJsonStringImpl(
23 std::string_view json_string,
24 google::protobuf::Message& output,
25 const google::protobuf::util::JsonParseOptions& options
37MessageToJson(
const google::protobuf::Message& message,
const google::protobuf::util::JsonPrintOptions& options);
46ToJsonString(
const google::protobuf::Message& message,
const google::protobuf::util::JsonPrintOptions& options);
50template <
typename Message>
59template <
typename Message>
68template <
typename Message>
71 impl::FromJsonStringImpl(json_string, message, impl::kDefaultJsonParseOptions);
77template <
typename Message>
78Message
FromJsonString(std::string_view json_string,
const google::protobuf::util::JsonParseOptions& options) {
80 impl::FromJsonStringImpl(json_string, message, options);
88json::Value Serialize(
const google::protobuf::Message& message,
To<
json::Value>);
94google::protobuf::Value Parse(
const formats::
json::Value& value,
To<google::protobuf::Value>);