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
39 const google::protobuf::Message& message,
40 const google::protobuf::util::JsonPrintOptions& options
50 const google::protobuf::Message& message,
51 const google::protobuf::util::JsonPrintOptions& options
57template <
typename Message>
67template <
typename Message>
76template <
typename Message>
79 impl::FromJsonStringImpl(json_string, message, impl::kDefaultJsonParseOptions);
85template <
typename Message>
86Message
FromJsonString(std::string_view json_string,
const google::protobuf::util::JsonParseOptions& options) {
88 impl::FromJsonStringImpl(json_string, message, options);
122template <
typename Message,
typename = std::enable_if_t<std::is_base_of_v<google::protobuf::Message, Message>>>
124 return ugrpc::JsonToMessage<Message>(value);
129google::protobuf::Value Parse(
const json::
Value& value,
To<google::protobuf::Value>);
132google::protobuf::Struct Parse(
const json::
Value& value,
To<google::protobuf::Struct>);
135google::protobuf::ListValue Parse(
const json::
Value& value,
To<google::protobuf::ListValue>);