[json-c] simple parsing example

Program Lang./C++ 2017. 1. 9. 14:45

1. 개요 

c언어로 되어 있는 json library이다. 나는 관련 일을 하지 않고 단순히 이용만 하는 입장이라서 자세히는 모르지만 제 기억에 어떤 전문가께서 세미나 하는 것을 들었는데 json-c는 주의를 기울이지 않으면 memory leak에 취약하다고 들었던 것 기억이 있다. 일단 난 사용법 익히는데 집중한다. 


2. json-c를 위한 cmake 수정 사항 

할 때마다 매번 찾아봐야 해서 여기에 정리해 놓는다. 다른 방법이 있겠지만 나는 단순히 pkg-config로 cflags 값과 libs 위치확인하고 강제로 cmake에 막았다.



수정사항은 cflags (헤더파일 위치)를 위한 include_directories(/usr/local/include/json-c)

libs 관련 정보 : link_directories(/usr/local/lib), json-c (-l 플래그 관련 수정 사항)


3. json 기본 Type 테스트

json의 기본 타입은 아래와 같다.

  • null
  • boolean
  • double
  • int
  • object
  • array
  • string
타입에 대한 정의 및 각 타입을 읽어들이는 방법은 아래 코드에 자세하게 나와 있다.


char형의 string을 json_tokener_parse() 함수를 통해서 json object로 변경한다. object내에 있는 각 값을 타입에 따라 parsing하는 예제이다. 입력 string은 하나의 큰 object에 string, boolean, integer, float, array, object로 구성되어 있다. 앞의 name, student, age, height, interestings, author-details는 key를 의미하고 각각 key와 오른쪽은 value이다.

여기서 array와 object는 추가적인 parsing이 더 들어가야 한다.


4. 실행결과


'Program Lang. > C++' 카테고리의 다른 글

enable_shared_from_this 정리  (0) 2017.01.12
[json-c] simple generator json ojbect  (0) 2017.01.09
std::function 정리  (0) 2017.01.02
unique_ptr, shared_ptr 읽히기  (0) 2016.12.30
c++ pair 읽히기  (0) 2016.12.30
: