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
37 const google::protobuf::Message& message,
38 const google::protobuf::util::JsonPrintOptions& options
48 const google::protobuf::Message& message,
49 const google::protobuf::util::JsonPrintOptions& options
54template <
typename Message>
63template <
typename Message>
72template <
typename Message>
75 impl::FromJsonStringImpl(json_string, message, impl::kDefaultJsonParseOptions);
81template <
typename Message>
82Message
FromJsonString(std::string_view json_string,
const google::protobuf::util::JsonParseOptions& options) {
84 impl::FromJsonStringImpl(json_string, message, options);
118template <
typename Message,
typename = std::enable_if_t<std::is_base_of_v<google::protobuf::Message, Message>>>
120 return ugrpc::JsonToMessage<Message>(value);
125google::protobuf::Value Parse(
const json::
Value& value,
To<google::protobuf::Value>);
128google::protobuf::Struct Parse(
const json::
Value& value,
To<google::protobuf::Struct>);
131google::protobuf::ListValue Parse(
const json::
Value& value,
To<google::protobuf::ListValue>);