mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-15 17:30:53 +08:00
91 lines
2.3 KiB
C++
91 lines
2.3 KiB
C++
#include "lib_acl.h"
|
|
|
|
#define LEN ACL_VSTRING_LEN
|
|
#define STR acl_vstring_str
|
|
|
|
static int build_callback(ACL_JSON *, ACL_VSTRING *data, void *ctx)
|
|
{
|
|
ACL_VSTRING *buf = (ACL_VSTRING*) ctx;
|
|
|
|
if (data == NULL) {
|
|
printf("ALL OVER NOW!\r\n");
|
|
return 0;
|
|
}
|
|
|
|
printf("input: length: %d, |%s|\r\n", (int) LEN(data), STR(data));
|
|
acl_vstring_strcat(buf, STR(data));
|
|
return 0;
|
|
}
|
|
|
|
static void test_json_build(void)
|
|
{
|
|
ACL_JSON* json = acl_json_alloc();
|
|
ACL_JSON_NODE* root, *node1, *node2, *node3;
|
|
|
|
root = acl_json_create_obj(json);
|
|
acl_json_node_append_child(json->root, root);
|
|
|
|
node1 = acl_json_create_leaf(json, "name1", "value1");
|
|
acl_json_node_append_child(root, node1);
|
|
|
|
node1 = acl_json_create_leaf(json, "name2", "value2");
|
|
acl_json_node_append_child(root, node1);
|
|
|
|
node1 = acl_json_create_obj(json);
|
|
node2 = acl_json_create_leaf(json, "name3", "value3");
|
|
acl_json_node_append_child(node1, node2);
|
|
node2 = acl_json_create_node(json, "name4", node1);
|
|
acl_json_node_append_child(root, node2);
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
node1 = acl_json_create_array(json);
|
|
node2 = acl_json_create_node(json, "name5", node1);
|
|
acl_json_node_append_child(root, node2);
|
|
|
|
node3 = acl_json_create_leaf(json, "name6", "value6");
|
|
acl_json_node_append_child(node1, node3);
|
|
|
|
node3 = acl_json_create_leaf(json, "name7", "value7");
|
|
acl_json_node_append_child(node1, node3);
|
|
|
|
node3 = acl_json_create_obj(json);
|
|
acl_json_node_append_child(node1, node3);
|
|
node2 = acl_json_create_leaf(json, "name8", "value8");
|
|
acl_json_node_append_child(node3, node2);
|
|
node2 = acl_json_create_leaf(json, "name9", "value9");
|
|
acl_json_node_append_child(node3, node2);
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
ACL_VSTRING *buf1 = acl_vstring_alloc(128);
|
|
ACL_VSTRING *buf2 = acl_vstring_alloc(128);
|
|
|
|
acl_json_build(json, buf1);
|
|
acl_json_building(json, 1, build_callback, buf2);
|
|
|
|
printf("%s\r\n", acl_vstring_str(buf1));
|
|
printf("%s\r\n", acl_vstring_str(buf2));
|
|
|
|
if (strcmp(STR(buf1), STR(buf2)) != 0)
|
|
printf("BUILD ERROR\r\n");
|
|
else
|
|
printf("BUILD OK\r\n");
|
|
|
|
acl_vstring_free(buf1);
|
|
acl_vstring_free(buf2);
|
|
|
|
acl_json_free(json);
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
test_json_build();
|
|
|
|
#ifdef WIN32
|
|
getchar();
|
|
#endif
|
|
|
|
return (0);
|
|
}
|