From 62f8f9e4ee066ecb562de7969180a07cb3d41f57 Mon Sep 17 00:00:00 2001 From: cheliequan <liequanche@126.com> Date: 星期二, 17 一月 2023 16:40:22 +0800 Subject: [PATCH] 增加根据protobuf转json函数 template <class T> bool bus_dbapi_get_json( T &list, string &json) --- util.h | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-) diff --git a/util.h b/util.h index 5539387..fe470fa 100644 --- a/util.h +++ b/util.h @@ -38,6 +38,36 @@ bool bus_dbapi_get_str(void *handle, const char *topic, char **pptr_str); int get_value_by_key(char *json, const char *key, char **pptr_data); + +template <class T> +bool bus_dbapi_get_json( T &list, string &json) +{ + using TMPT = typename std::remove_reference<decltype(*list.begin())>::type; + TMPT t; + string jsonString; + int len = list.size(); + bRet = false; + + jsonString += "["; + + for ( int i= 0 ; i < len ; i++ ) + { + string tmpjsonString; + bRet = proto_to_json(list[i], tmpjsonString); + if ( (len > 1) &&(i < len - 1)) + { + tmpjsonString += ","; + } + jsonString += tmpjsonString; + } + + jsonString += "]"; + + json = jsonString; + +} + + template <class T> bool bus_dbapi_get_list(char *json, const char *flag_key, const char *data_key, T &list) { char *ptr_value = NULL; -- Gitblit v1.8.0