본문으로 바로가기

[C] cJSON을 사용하여 json 파싱

category 프로그래밍/C 2021. 3. 30. 23:53
728x90
반응형

cJSON을 사용하여 json 메시지를 파싱해보겠습니다.

 

cJSON은 github에서 검색하면 많은 정보가 나옵니다.

 

저는 cJSON.c파일과 cJSON.h 파일을 사용하였습니다.

 

아래의 소스 코드 파일은 cjson_test.c 이고, 아래의 방법으로 컴파일을 합니다.

 

]# gcc -o cjson_test cjson_test.c cJSON.c -lm

 

컴파일 할때 math 라이브러리가 필요해서 -lm을 추가하였습니다.

 

실행 결과는 아래와 같습니다.

 

=============================================================

json : {"info": [{"code": 11,"name": "cjson"},{"code": 12,"name":"clanguage"}]}
code : 11
name : cjson
code : 12
name : clanguage

=============================================================

 

소스 코드에 대해 간단히 설명해보겠습니다.

 

9 : json 문자열을 만듭니다. c에서는 수동으로 json을 만들 경우, 특수문자때문에 역슬래시(\)를 사용합니다.

11 : 출력된 json을 확인합니다. 혹시 모르니 웹사이트에 있는 json 유효성 검사 사이트에서 검사도 한번 해봅니다.

25 : json 메시지를 cJSON_parse 함수에 넣습니다.

33 : json 메시지의 info 부분을 파싱합니다.

40 : info는 json의 배열입니다. json 배열의 크기를 구합니다.

42 : for문을 활용하여 json 배열의 값들을 하나하나 출력합니다

44 : 배열 하나를 가져옵니다.

50 : code 부분을 파싱하여 출력합니다.

60 : name 부분을 파싱하여 출력합니다.

67~69 : cJSON에서는 "까지 출력되기 때문에 "을 삭제하는 작업을 수행합니다.

 

이상입니다.

728x90
반응형