본문 바로가기
Study/Etc

Jansson library - json_load_file() , josn_dump_file 관련 문제

by 뿡뿡대마왕 2018. 12. 6.
반응형


Server와의 통신이 Fortmat을 json으로 규정지어 사용하고 있는데


이때 Client side에서 json관련하여  jansson library를 사용하고 있다.


jansson library에서는 json 문자열을 파일로 생성하거나, json format의 파일을 읽어 로드하는 함수를 제공하고 있다.


1. json_load_file : json 파일의 포맷을 읽어 로드하는 함수


   json_t *json_load_file(const char *path, size_t flags, json_error_t *error);

 -> 위 함수 사용시인자로 들어가 path에 문제가 있다. 

  

     유니코드를 사용해야 하는 문자가 있는 경우이다. utf-8로 바꿔도 안되고, 멀티바이트로 해도 안되고..

  

     모든 문자가 그런건 아니고, 특수문자 또는 중국어등, 깨지는 현상이 발생하면 안된다.

  

     그래서 다국어 관련 처리시에는 위 함수를 바로 쓰지 말고, 해당 함수를 랩핑하여, 해당 함수 실패시

  

     직접 파일을을 읽어, json_loads나 json_loadb등을 통해 처리하도록 보완할 필요가 있다.

    

  

   

2. json_dump_file: json object로 json 데이터가 들어있는 파일을 생성해줌

   int json_dump_file(const json_t *json, const char *path, size_t flags);

  

  -> 위 함수 또한 위와 동일한 문제의 발생소지가 있기 때문에 위와 동일한 스타일로, 

      위 함수 실패시,  json_dumps로 문자열을 받아 직접 file을 작성하는 방식의 보완이 필요하다.

      생성되어야 하는 경로가 유니코드로 처리되는 문자열인 경우에 말이다.

 

  정보는 공유되어야 한다 쭈욱~~

     




반응형

댓글