개발 이야기/개발 및 서비스

jsoncpp 사용법 정리

가온아 2018. 7. 5. 15:50

공식 사이트는 이 곳!!

http://jsoncpp.sourceforge.net/ >> 현재는 github로 링크가 이동된다.


최근 코드는 많이 달라져 있어서 최근 코드 사용에 대해서는 추후 다시 한번 정리할 예정이다.


이번은 예전에 사용하던 코드를 활용하여 ( 파일 >> jsoncpp.zip


일단 설치는 그냥 압축을 풀어 프로젝트에 적용하면 끝!! (h와 cpp 파일 각 하나씩만 존재한다.)


사용법은 아래와 같다. 


- 읽기


json 파일의 내용을 어딘가에서 읽어왔다면 Json::Reader를 사용하여 파싱하여야 한다.


std::string data;  << --- 이곳에 json 데이터가 있다고 가정하면.. 

Json::Reader reader;

Json::Value root;

reader.parse(data, root); <<-- data를 넣어주면 root 에 파싱된 json 정보를 넣어준다.


const Json::Value &name = root["name"]; << -- name이라는 키를 활용해서 정보를 가져오고..

std::string yourName= name.asString();  << --- as... 로 데이터를 캐스팅해서 가져온다.



- 쓰기


새롭게 정보를 쓸 때는 Json::Value 에 기록할 수 있다.


Json::Value root;

root["name"] = "Poppy";   << -- name이라는 키와 "Poppy"라는 값을 삽입하는 예

root["array sample"] = Json::Value(Json::arrayValue);   << -- "array sample"이라는 배열을 삽입하는 

root["array sample"].append( "array 1");                    <<-- 위처럼 정의해주지 않아도 append 하면 바로 배열로 저장됨. 어쨌든 값을 배열로 저장하는 과정.

root["array sample"].append( "array 2");



Json::Value에 저장된 값을 텍스트 형태로 다시 변환하는 건 아래와 같이 가능핟. 

Json::FastWriter fastWriter;
std::string output = fastWriter.write(root);


최근 업데이트된 코드를 보고 내용을 첨부할 예정. (예정... 예... 정... 예................. 정.............................)




반응형