c++结构体转json

1 因为项目中用到c/c++ 结构体转json字符串,其实这个操作很多库都可以实现,不过项目遇到要带反斜杠的json字符串,比如

下面这个是asp.net前端那块需要的格式
{\"aid\":\"1\",\"cid\":\"1\",\"cid_url\":\"11\",\"time_stamp\":\"1\",\"status\":\"1\",\"time_stamp\":\"1\",\"pic_name\":\"1\",\"pic_data\":\"\",\"data\":[{\"frame_id\":\"1\",\"time_stamp\":\"1\",\"alertFlag\":\"1\",\"headInfo\":[{\"x\":123,\"y\":123,\"width\":123,\"height\":123,\"numOfHelmet\":\"1\",\"color\":\"1\"}]}]}

但是很多结构体转json的库转出来的是
{"aid":"1","cid":"1","cid_url":"11","time_stamp":"1","status":"1","time_stamp":"1","pic_name":"1","pic_data":"","data":[{"frame_id":"1","time_stamp":"1","alertFlag":"1","headInfo":[{"x":123,"y":123,"width":123,"height":123,"numOfHelmet":"1","color":"1"}]}]}

 

所以要自己做些处理,但是看了很多库的源码没看出要哪里改,最终在

x2struct 这个库里面找到解决方法,其实这个库里面用到rapidjson这个库,

经过与作者沟通,可以通过两次tojson函数做到

但是感觉如果第一次json带图片数组的话感觉第二次转时数据量太大(猜测的)

所以通过第二种方法是通过修改x2struct/thirdparty/rapidjson/writer.h里的WriteString函数

在里面的两个PutUnsafe(*os_,'\"');前面都添加PutUnsafe(*os_,'\\');

c++结构体转json_第1张图片

就行了,循环测了100万次目前没问题发现

你可能感兴趣的:(工程,json,结构体,c/c++)