- 主题:json反序列化的C++库,用哪个?
- json -> c++ object。
 
 由于各种原因,没有使用protobuf,而是用了json。
 
 用jsoncpp手写代码挨个提取json节点里的数据挺无聊的,纯粹是堆代码行数。
 
 看到一些用boost::fusion/boost::hana搞的。
 
 这个star值挺高的
 https://github.com/nlohmann/json#serialization--deserialization
 
 不知道有没啥推荐的
 --
 FROM 114.241.227.*
 
- 这个可能是你想要的
 https://github.com/Loki-Astari/ThorsSerializer
 
 在github上搜索 c++的serialization库
 
 【 在 z16166 的大作中提到: 】
 : json -> c++ object。
 : 由于各种原因,没有使用protobuf,而是用了json。
 : 用jsoncpp手写代码挨个提取json节点里的数据挺无聊的,纯粹是堆代码行数。
 : ...................
 --
 FROM 111.199.191.*
 
- 还是protobuf啊,重点不是怎么把schema映射成c++数据结构么。
 至于中间用json还是二进制,只不过改一个函数的事情。
 
 好像很多大厂都用nlohmann-json, 主要是对c++新标准支持的好。
 
 
 【 在 z16166 的大作中提到: 】
 : json -> c++ object。
 : 由于各种原因,没有使用protobuf,而是用了json。
 : 用jsoncpp手写代码挨个提取json节点里的数据挺无聊的,纯粹是堆代码行数。
 : ...................
 --
 FROM 222.129.50.*
 
- 看了一下,protobuf新版支持json和binary的互转:
 https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.util.json_util
 
 【 在 ble 的大作中提到: 】
 : 还是protobuf啊,重点不是怎么把schema映射成c++数据结构么。
 : 至于中间用json还是二进制,只不过改一个函数的事情。
 : 好像很多大厂都用nlohmann-json, 主要是对c++新标准支持的好。
 : ...................
 --
 FROM 114.241.227.*
 
- 不一样
 protobuf是一种先定义schema后,使用的是google的数据类型作为模型
 这种方式,使用起来对代码的侵入性大, 类型来回转换,使用感觉不佳
 理想的方式是,以原生的c++数据结构作为schema,任意定义类型,
 将序列化部分与数据结构定义剥离开,序列化实现不会影响系统的模型定义
 
 【 在 ble 的大作中提到: 】
 : 还是protobuf啊,重点不是怎么把schema映射成c++数据结构么。
 : 至于中间用json还是二进制,只不过改一个函数的事情。
 : 好像很多大厂都用nlohmann-json, 主要是对c++新标准支持的好。
 : ...................
 --
 FROM 111.199.191.*
 
- protobuf是通信协议, 不是用来序列化对象的。完全不同的用处。
 
 很多人非要把proto用来存储对象,变向说明c++的序列化没啥好用的库。
 
 
 
 【 在 iwantfly 的大作中提到: 】
 : 不一样
 : protobuf是一种先定义schema后,使用的是google的数据类型作为模型
 : 这种方式,使用起来对代码的侵入性大, 类型来回转换,使用感觉不佳
 : ...................
 --来自微微水木3.5.12
 --
 FROM 39.144.105.*
 
- C++的Reflection TS啥时候final?
 
 【 在 KillnCov 的大作中提到: 】
 : protobuf是通信协议, 不是用来序列化对象的。完全不同的用处。
 : 很多人非要把proto用来存储对象,变向说明c++的序列化没啥好用的库。
 :
 --
 FROM 114.241.227.*
 
- 哈哈,就用那个nl…man,名字不好拼那个,出镜率很高。我看红点时,刷到过好多次。
 
 至于cpp的reflection…… 且着呢,老码农换语言换平台前,能用上module就不错了~
 Qt写moc的那个人,好像也一直等着,实现基于反射的moc,好去掉moc,洗白Qt不是cpp的谣言:-)
 
 点发送前,搜了下circle编译器,是支持的
 【 在 z16166 的大作中提到: 】
 : C++的Reflection TS啥时候final?
 :
 --
 FROM 124.114.151.*
 
- 即使只使用protobuf作为通讯层
 那么你在系统内部需要定义自己的数据结构
 然后你需要通信的时候,再把自己的数据结构转化为 protobuf
 也是一样的
 除非你使用protobuf的类型作为基础结构
 
 
 【 在 KillnCov 的大作中提到: 】
 : protobuf是通信协议, 不是用来序列化对象的。完全不同的用处。
 : 很多人非要把proto用来存储对象,变向说明c++的序列化没啥好用的库。
 : --来自微微水木3.5.12
 : ...................
 --
 FROM 111.199.191.*