cheliequan
2023-01-16 e52dbd2cfdd74040c012c70a1253b9031a085662
优化接口支持json是数组格式
3个文件已修改
37 ■■■■ 已修改文件
rule.cpp 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
util.cpp 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
util.h 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
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);
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;