diff --git a/include/json/neu_json_rw.h b/include/json/neu_json_rw.h index 4ed47f79..0020b304 100644 --- a/include/json/neu_json_rw.h +++ b/include/json/neu_json_rw.h @@ -34,7 +34,6 @@ extern "C" { typedef struct { char * config_name; char * node_name; - uint32_t node_id; uint64_t timestamp; } neu_json_read_periodic_t; diff --git a/plugins/mqtt/command/read_write.c b/plugins/mqtt/command/read_write.c index bf65c8a4..ae1daa58 100644 --- a/plugins/mqtt/command/read_write.c +++ b/plugins/mqtt/command/read_write.c @@ -269,14 +269,13 @@ char *command_rw_read_periodic_response(neu_plugin_t *plugin, uint64_t sender, char * json_str = NULL; neu_json_read_periodic_t header = { .config_name = (char *) neu_taggrp_cfg_get_name(config), - .node_id = sender, .node_name = (char *) node_name, .timestamp = current_time() }; log_debug("config:%s, node:%s, self_id:%ld, " "sender:%ld, time:%u", - header.config_name, header.node_name, header.node_id, sender, + header.config_name, header.node_name, sender, sender, header.timestamp); neu_json_read_resp_t json = { 0 }; diff --git a/src/parser/neu_json_rw.c b/src/parser/neu_json_rw.c index 3f636537..a813f793 100644 --- a/src/parser/neu_json_rw.c +++ b/src/parser/neu_json_rw.c @@ -37,21 +37,22 @@ int neu_json_encode_read_resp(void *json_object, void *param) void * tag_array = neu_json_array(); neu_json_read_resp_tag_t *p_tag = resp->tags; for (int i = 0; i < resp->n_tag; i++) { - neu_json_elem_t tag_elems[] = { { - .name = "value", - .t = p_tag->t, - .v = p_tag->value, - }, - { - .name = "name", - .t = NEU_JSON_STR, - .v.val_str = p_tag->name, - }, - { - .name = "error", - .t = NEU_JSON_INT, - .v.val_int = p_tag->error, - } }; + neu_json_elem_t tag_elems[2] = { 0 }; + + tag_elems[0].name = "name"; + tag_elems[0].t = NEU_JSON_STR; + tag_elems[0].v.val_str = p_tag->name; + + if (p_tag->error != 0) { + tag_elems[1].name = "error"; + tag_elems[1].t = NEU_JSON_INT; + tag_elems[1].v.val_int = p_tag->error; + } else { + tag_elems[1].name = "value"; + tag_elems[1].t = p_tag->t; + tag_elems[1].v = p_tag->value; + } + tag_array = neu_json_encode_array(tag_array, tag_elems, NEU_JSON_ELEM_SIZE(tag_elems)); p_tag++; @@ -240,11 +241,6 @@ int neu_json_encode_read_periodic_resp(void *json_object, void *param) neu_json_read_periodic_t *resp = (neu_json_read_periodic_t *) param; neu_json_elem_t resp_elems[] = { { - .name = "node_id", - .t = NEU_JSON_INT, - .v.val_int = resp->node_id, - }, - { .name = "node_name", .t = NEU_JSON_STR, .v.val_str = resp->node_name, diff --git a/tests/json_rw_test.cc b/tests/json_rw_test.cc index 6f15a6f8..4f051060 100644 --- a/tests/json_rw_test.cc +++ b/tests/json_rw_test.cc @@ -28,10 +28,8 @@ TEST(JsonAPITest, ReadReqDecode) TEST(JsonAPITest, ReadResEncode) { - char *buf = (char *) "{\"tags\": [{\"value\": 123, \"name\": \"data1\", " - "\"error\": 0}, " - "{\"value\": 11.123456789, \"name\": \"data2\", " - "\"error\": 0}]}"; + char *buf = (char *) "{\"tags\": [{\"name\": \"data1\", \"value\": 123}, " + "{\"name\": \"data2\", \"value\": 11.123456789}]}"; char * result = NULL; neu_json_read_resp_t res = { .n_tag = 2,