MFC 에서 JSONCPP 의 사용 C+JSON 해석

JSON 은 가 벼 운 데이터 정의 형식 으로 XML 보다 배우 기 쉽 고 사용 하기 쉬 우 며 확장 기능 이 XML 보다 별로 차이 가 나 지 않 으 므 로 데이터 교환 을 하 는 것 이 좋 은 선택 이다.
JSON 의 전 칭:JavaScript Object Notation,말 그대로 JSON 은 javascript 대상 을 표시 하 는 데 사 용 됩 니 다.자세 한 내용 은 참고 하 십시오.http://www.json.org/。
본 고 는 제3자 라 이브 러 리 인 JSonCpp 를 선택 하여 json 을 분석 하고 자 한다.JSonCpp 는 비교적 유명한 c++분석 라 이브 러 리 로 json 홈 페이지 에서 도 첫 번 째 로 추천 된다.
JSonCpp 소개
JSonCpp 는 주로 세 가지 유형의 class:Value Reader Writer 를 포함 합 니 다.
jsoncpp 의 모든 대상,클래스 이름 은 namespace json 에 있 으 며,json.h 를 포함 하면 됩 니 다.
메모:JSon:Value 는 ANSI 형식의 문자열 만 처리 할 수 있 습 니 다.C++프로그램 이 유 니 코드 인 코딩 을 사용한다 면 Adapt 클래스 를 추가 하 는 것 이 좋 습 니 다.
다운로드 및 컴 파일
다운로드 주소:http://sourceforge.net/projects/jsoncpp/
압축 을 풀 고 jsoncpp-src-0.5.0 폴 더 를 얻 으 려 면 jsoncpp 의 헤더 파일 과 cpp 파일 만 필요 합 니 다.그 중에서 jsonscpp 의 헤더 파일 은 jsoncpp-src-0.5.0/include/json/에 있 고 jsoncpp 의 cpp 파일 은 jsoncpp-src-0.5.0/src/lib 에 있 습 니 다.json/。
본인 c++처음에 사용 하기 시 작 했 기 때문에 머리 파일 과 cpp 파일 을 모두 프로젝트 에 넣 었 습 니 다.
단계:
1.include/json/와 src/lib/의.h 와.cpp 파일 을 각각 프로젝트 에 추가 하고 다른 것 은 가입 하지 않 아 도 됩 니 다.
2.생 성 공정
일부 오 류 를 보고 할 수 있 습 니 다.솔 루 션 1,include 의 경 로 를 조정 합 니 다.2.3 개의.cpp 헤더 파일 에 가입 합 니 다.\#include"Stdafx.h";그리고 프로젝트 를 만 들 면 틀 리 지 않 습 니 다.
3.json.h 헤더 파일 을 직접 포함 하고 싶 으 면 됩 니 다.
인터넷 에서 본 jsoncpp 의 용법 을 간단히 말씀 드 리 겠 습 니 다.
역 직렬 화 JSon 대상
{  
"name": "json″,  
"array": [  
{  
"cpp": "jsoncpp" 
},  
{  
"java": "jsoninjava" 
},  
{  
 "php": "support" 
}  
]  

우 리 는 이 json 의 반 시리 얼 코드 를 다음 과 같이 실현 해 야 한다.
voidreadJson() {  
usingnamespacestd;  
std::stringstrValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}";  
Json::Reader reader;  
Json::Value value;  
if(reader.parse(strValue, value))  
{  
std::stringout= value["name"].asString();  
std::cout <
constJson::Value arrayObj = value["array"];  
 for(unsigned inti = 0;i 
{  
if(!arrayObj[i].isMember("cpp"))  
continue;  
out= arrayObj[i]["cpp"].asString();  
std::cout <
if(i != (arrayObj.size() - 1))  
std::cout <<:endl/>
 }  
}  

서열 화 JSon 대상
voidwriteJson() {  
usingnamespacestd;  
Json::Value root;  
Json::Value arrayObj;  
Json::Value item;  
item["cpp"] = "jsoncpp";  
item["java"] = "jsoninjava";  
item["php"] = "support";  
arrayObj.append(item);  
root["name"] = "json";  
root["array"] = arrayObj;  
root.toStyledString();  
std::stringout= root.toStyledString();  
std::cout <
 } 

좋은 웹페이지 즐겨찾기