userver: /data/code/userver/libraries/proto-structs/src/proto-structs/io/userver/formats/json/array_conv.cpp Source File
Loading...
Searching...
No Matches
array_conv.cpp
1#include <userver/proto-structs/io/userver/formats/json/array_conv.hpp>
2
3#include <google/protobuf/struct.pb.h>
4
5#include <userver/proto-structs/io/context.hpp>
6#include <userver/protobuf/json/convert.hpp>
7
8USERVER_NAMESPACE_BEGIN
9
10namespace proto_structs::io {
11
12formats::json::Array ReadProtoStruct(
13 ReadContext& ctx,
14 To<formats::json::Array>,
15 const ::google::protobuf::ListValue& msg
16) {
17 try {
18 return formats::json::Array{protobuf::json::MessageToJson(msg, protobuf::json::PrintOptions{})};
19 } catch (const protobuf::json::PrintError& e) {
20 ctx.AddError(e.what());
21 return formats::json::Array{};
22 }
23}
24
25void WriteProtoStruct(WriteContext&, const formats::json::Array& obj, ::google::protobuf::ListValue& msg) {
26 protobuf::json::JsonToMessage(obj.GetValue(), msg, protobuf::json::ParseOptions{});
27}
28
29} // namespace proto_structs::io
30
31USERVER_NAMESPACE_END