From e52dbd2cfdd74040c012c70a1253b9031a085662 Mon Sep 17 00:00:00 2001
From: cheliequan <liequanche@126.com>
Date: 星期一, 16 一月 2023 19:49:33 +0800
Subject: [PATCH] 优化接口支持json是数组格式
---
rule.cpp | 8 +++-----
util.cpp | 11 ++++++++++-
util.h | 18 ++++++++++++++++++
3 files changed, 31 insertions(+), 6 deletions(-)
diff --git a/rule.cpp b/rule.cpp
index 9215e4a..060cc21 100644
--- a/rule.cpp
+++ b/rule.cpp
@@ -14,11 +14,9 @@
bool dbapi_get_dayctls(char *timeRules, std::vector<protomsg::DayCtl> & list)
{
- const char * flag_key = NULL;
+ bool is_array = true;
- const char * data_key = "time_rule";
-
- bool ret = bus_dbapi_get_list(timeRules, flag_key, data_key, list);
+ bool ret = bus_dbapi_get_list(timeRules, is_array, list);
return ret;
@@ -28,7 +26,7 @@
{
const char * flag_key = NULL;
- const char * data_key = "time_range";
+ const char * data_key = NULL;
bool ret = bus_dbapi_get_list(datactls, flag_key, data_key, list);
diff --git a/util.cpp b/util.cpp
index 42e8db7..26a0dda 100644
--- a/util.cpp
+++ b/util.cpp
@@ -125,7 +125,16 @@
// Get root["data"]
//yyjson_val *msg = yyjson_obj_get(root, "data");
- yyjson_val *data = yyjson_obj_get(root, data_name);
+ yyjson_val *data;
+ if ( NULL != data_name )
+ {
+ data = yyjson_obj_get(root, data_name);
+ }
+ else
+ {
+ data = root;
+ }
+
*ptr_type = yyjson_get_type(data);
ptr_value = yyjson_val_write(data, YYJSON_WRITE_NOFLAG, &data_len);
diff --git a/util.h b/util.h
index 3cd6741..5539387 100644
--- a/util.h
+++ b/util.h
@@ -105,6 +105,24 @@
}
template <class T>
+bool bus_dbapi_get_list(char *json, bool is_array, T &list) {
+ char *success_name = NULL;
+ char *data_name = NULL;
+ if ( is_array )
+ {
+ success_name = NULL;
+ data_name = NULL;
+ }
+ else
+ {
+ success_name = "success";
+ data_name = "data";
+ }
+
+ return bus_dbapi_get_list(json, (const char *)success_name, (const char *)data_name, list);
+}
+
+template <class T>
bool bus_dbapi_get_list(void *handle, const char *topic, T &list) {
crepmsg *repmsg = NULL;
size_t len = 0;
--
Gitblit v1.8.0