본문 바로가기
개발 업무(코딩)-개발자였을때 썼던..

C-JSON EXAMPLE 예제 2 - ARRAY

by 주용사 2023. 1. 9.
728x90

json에서 array를 만들기위해서 짠 샘플 소스이다.

memory leak이 있는 지 확인 하기 위해서 while문을 돌렸다.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<json/json.h>

int main()
{

        while(1)
        {
        json_object *myobj, *dataobj, *headerobj;

        // 메모리 할당
        myobj = json_object_new_object();
        dataobj = json_object_new_object();
        headerobj = json_object_new_object();

        char ztemp[1024];
        memset(ztemp, 0x00, sizeof(ztemp));
        memcpy(ztemp, "test", sizeof(ztemp));

        // create a json array
        json_object *jarray = json_object_new_array();

        json_object *test = json_object_new_object();

        /* list */
        json_object_object_add(test, "11", json_object_new_string("11"));
        json_object_object_add(test, "22", json_object_new_string("22"));
        json_object_object_add(test, "33", json_object_new_string("33"));
        json_object_array_add(jarray, test);
        json_object_object_add(test, "11", json_object_new_string("111"));
        json_object_object_add(test, "22", json_object_new_string("222"));
        json_object_object_add(test, "33", json_object_new_string("333"));
        json_object_array_add(jarray, test);


        json_object_object_add(dataobj, "mylistlist", jarray);
        json_object_object_add(dataobj, "next", json_object_new_string(""));
        json_object_object_add(myobj, "dataBody", dataobj);

        json_object_object_add(headerobj, "carrier", json_object_new_string("KT"));
        json_object_object_add(headerobj, "appVersion", json_object_new_string(".."));
        
        json_object_object_add(myobj, "dataHeader", headerobj);

        printf("myobj.to_string()=%s\n", json_object_to_json_string(myobj));

        // 메모리 해제
        json_object_put(test);
        json_object_put(jarray);
        json_object_put(headerobj);
        json_object_put(dataobj);
        json_object_put(myobj);
        }

        return 0;
}
728x90