关键词:
【中文标题】C ++在json中转换protobuf【英文标题】:C++ Converting protobuf in json 【发布时间】:2018-03-05 16:47:14 【问题描述】:我正在尝试将一些数据从 protobuf 连接到 json。
这是我的代码的相关部分:
Message* m;
std::string json;
std::string binary_s;
...fill the message...
m->serializeToString(&binary_s);
MessageToJsonString(*m, &json);
下面的指令工作正常并产生了预期的输出。
m->serializeToString(&binary_s);
但是当我尝试将其转换为json时,总是出现这个错误:
Program received signal SIGSEGV, Segmentation fault.
google::protobuf::DescriptorPool::FindFileByName (this=0x0, name="FLATBUFFER_DEFINITION.proto") at google/protobuf/descriptor.cc:1415
1415 MutexLockMaybe lock(mutex_);
(gdb) backtrace
#0 google::protobuf::DescriptorPool::FindFileByName (this=0x0, name="AutoPilot.proto")
at google/protobuf/descriptor.cc:1415
#1 0x00007ffff7aba42d in google::protobuf::internal::AssignDescriptors (filename="AutoPilot.proto",
schemas=0x4463a0 <protobuf_AutoPilot_2eproto::schemas>,
default_instances_=0x446500 <protobuf_AutoPilot_2eproto::file_default_instances>,
offsets=0x445c20 <protobuf_AutoPilot_2eproto::TableStruct::offsets>, factory=0x0,
file_level_metadata=0x665020 <protobuf_AutoPilot_2eproto::file_level_metadata>,
file_level_enum_descriptors=0x6651e0 <protobuf_AutoPilot_2eproto::file_level_enum_descriptors>,
file_level_service_descriptors=0x0) at google/protobuf /generated_message_reflection.cc:2316
#2 0x000000000040730c in protobuf_AutoPilot_2eproto::protobuf_AssignDescriptors() ()
#3 0x00007ffff7a24bd5 in google::protobuf::internal::FunctionClosure0::Run (this=0x7fffffffda90)
at ./google/protobuf/stubs/callback.h:129
#4 google::protobuf::GoogleOnceInitImpl (
once=0x665388 <protobuf_AutoPilot_2eproto::protobuf_AssignDescriptorsOnce()::once>, closure=0x7fffffffda90)
at google/protobuf/stubs/once.cc:83
#5 0x0000000000433abb in google::protobuf::GoogleOnceInit(long*, void (*)()) ()
#6 0x0000000000407383 in protobuf_AutoPilot_2eproto::protobuf_AssignDescriptorsOnce() ()
#7 0x0000000000431503 in Message::GetMetadata() const ()
#8 0x00007ffff7b536cc in google::protobuf::Message::GetDescriptor (this=0x68e0b0) at ./google/protobuf/message.h:336
#9 google::protobuf::util::MessageToJsonString (message=warning: RTTI symbol not found for class 'Message'
..., output=0x7fffffffdd60, options=...)
at google/protobuf/util/json_util.cc:217
似乎找不到文件“FLATBUFFER_DEFINITION.proto”,但它在可执行文件的同一目录中。
【问题讨论】:
【参考方案1】:google::protobuf::DescriptorPool::FindFileByName **(**this=0x0**,** name="FLATBUFFER_DEFINITION.proto") at google/protobuf/descriptor.cc:1415
1415 MutexLockMaybe lock(mutex_);
对象指针为空。我打电话给 ShutdownProtobufLibrary();之后,继续使用他的功能。
【讨论】:
在 Objective c 中难以处理 json 格式
】在Objectivec中难以处理json格式【英文标题】:DifficulttohandlingjsonformattinginObjectivec【发布时间】:2017-07-2005:40:14【问题描述】:我需要从这个数组中转换json字符串(1=4;,8=20;)实际上我需要像"custom":"1":"3","8... 查看详情
如何使用 C#/LINQ 将 XML 转换为 JSON?
...发布时间】:2012-08-1517:59:01【问题描述】:我有以下需要在服务器中转换为JSON的XML文件。最初我以为我会将它转换为字典,然后使用JavaScriptSerializer将其转换为JSON,但由于每列可能有不同的值类型,我认为它不会起作用。以前... 查看详情
如何将 JSON 响应转换为表格中的表格
...einsheets【发布时间】:2019-06-2711:55:57【问题描述】:我正在向API发送请求(在Google脚本中),我收到的响应是JSON文本,如下所示:["id":26319355,"name":"1.WAW-FIRSTSESION","calendar":"GloversClick&C 查看详情
如何在不转换为json的情况下将c#数组用于javascript数组?
我有一个C#数组,其中包含C#模型列表:publicclassAlertInfo{publiclongId{get;set;}publicstringMessage{get;set;}}我将C#的数组转换为json并在javascript中使用,如下所示:JavaScriptSerializer_serializer=newJavaScriptSerializer();stringresult=_ 查看详情
将 JSON 子对象转换为 Xamarin 表单中的表
...0-0417:11:31【问题描述】:也许这是一个简单的问题,但我在互联网上没有找到任何解决方案。我有以下来自API的json数据:["userId":"6ba8da0c-b307-40b6-b858-5fb1b880d473","nomeCompleto":"Jo 查看详情
java中怎么将json字符串转换成二维数组啊?
在后台得到一个从前端传过来的JSON字符串[["name","专业a"],["notice","专业B"],["purchase","专业C"]]要怎么样才能转换成String[][]info=newString[][]"专业a","name","专业B","not... 查看详情
您可以在转换为 C# 对象的 JSON 中序列化 ByteArrayContent 吗?
】您可以在转换为C#对象的JSON中序列化ByteArrayContent吗?【英文标题】:CanyouserializeByteArrayContentinaJSONthattranslatestoC#object?【发布时间】:2021-06-1700:07:53【问题描述】:我在VSStudio中编写了一个C#WebAPI,并创建了许多DTO,这些DTO被序... 查看详情
在R中展平深层嵌套的json
】在R中展平深层嵌套的json【英文标题】:FlattendeepnestedjsoninR【发布时间】:2016-05-0719:41:21【问题描述】:我正在尝试使用R将嵌套的JSON文件转换为二维数据框。我的JSON文件具有嵌套结构。但是,不同级别的名称和属性是相同的... 查看详情
转换为 spark DataFrame 时,Json 字段默认排序
...】:当我从json文件创建数据框时,json文件中的字段默认在数据框中排序。如何避免这种排序?Jsonfile每行有一条json消息:"name":"john","age":10,"c 查看详情
如何在php中正确的使用json(转)
从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。1、json_encode()该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:$arr=array(‘a‘=>1,‘b‘=>2,‘c‘=>3,‘d‘=>4,... 查看详情
在 C/C++ 中使用 ProtoBuf 进行深度复制
】在C/C++中使用ProtoBuf进行深度复制【英文标题】:Deep-copyingwithProtoBufinC/C++【发布时间】:2015-04-2721:37:51【问题描述】:假设我有一个指针数组,每个指针都指向结构体,这些结构体中可能又包含指向其他结构体的指针;是否可... 查看详情
在 LARAVEL 中转换 JSON
】在LARAVEL中转换JSON【英文标题】:ConvertJSONINLARAVEL【发布时间】:2021-09-0621:52:26【问题描述】:这是我的JSON["TIMESTAMP":"2021-06-0913:13:26","COL1":"10","COL2":"20","COL3":"30","TIMESTAMP":"2021-06-2213:13:26","COL1":"20","COL2":"30","COL3":"40 查看详情
JSON Array 无法在 Android 中转换为 JSON 对象
】JSONArray无法在Android中转换为JSON对象【英文标题】:JSONArraycannotbeconvertedtoJSONObjectinAndroid【发布时间】:2014-10-2404:05:40【问题描述】:我想从JSON填充微调器。我在日志cat.但没有在Spinner中获取正确打印响应。这是我的json格式JSON... 查看详情
如何在 kotlin 中转换这个复杂的 json
】如何在kotlin中转换这个复杂的json【英文标题】:Howtoconvertthiscomplexjsoninkotlin【发布时间】:2021-11-0904:01:35【问题描述】:我想将此Json文件转换为kotlin:"results":"ALL":"currencyName":"AlbanianLek","currencySymbol":"Lek","id":"ALL","XCD":"currencyName... 查看详情
在 Objective C (iOS) 中解析 JSON
】在ObjectiveC(iOS)中解析JSON【英文标题】:ParsingJSONinObjectiveC(iOS)【发布时间】:2012-07-0612:53:12【问题描述】:我在ObjectiveC中解析JSON字符串时遇到问题:我的JSON:"messages":["nick":"Tim","message":"Hallo","time":"06.07.201213:26:41"]我的目标C代... 查看详情
在C中从二进制转换为char
】在C中从二进制转换为char【英文标题】:ConvertfromabinarytocharinC【发布时间】:2012-06-0505:10:20【问题描述】:我对如何在c中将二进制值转换为char感到困惑。例如,假设我有01010110并想从中打印相应的字母“V”。我该怎么做呢?... 查看详情
如何在 JSON 对象中转换转义的 JSON 字符串?
】如何在JSON对象中转换转义的JSON字符串?【英文标题】:HowdoIconvertanescapedJSONstringwithinaJSONobject?【发布时间】:2017-01-0209:40:27【问题描述】:我从一个公共API接收一个JSON对象,该对象的属性本身就是一个转义的JSON字符串。"respo... 查看详情
在关于转换对象的地址空间的 c 样式类型转换过程中实际发生了啥?
】在关于转换对象的地址空间的c样式类型转换过程中实际发生了啥?【英文标题】:whatactuallyhappensduringac-styletypecastingregardingaddressspaceofcastedobjects?在关于转换对象的地址空间的c样式类型转换过程中实际发生了什么?【发布时间... 查看详情