如今我這樣一個json字符串:json
char* cjson = "{\"code\": \"200\", \"code2\": 200}"; Json::Value root; Json::Reader Jreader; Jreader.parse(cjson ,root);
這個字符串的code:「200」 code2:200spa
如今出現一個問題,我要使用這個code值作判斷code
好比我要判斷code是否等於「200」blog
期間遇到不少問題,最後終於試出兩種code的判斷方式:字符串
if(root["code"].toStyledString().compare("\"200\"\n") == 0) cout<<"ok"<<endl; if(root["code2"].asInt() == 200) cout<<"ok2"<<endl;
第二個的code2的判斷是常規方法class
而第一個的code,沒想到 除了兩個雙引號(「」)要加,還須要加一個回車符作判斷(\n)方法
這個就是jsoncpp庫的問題吧di
ops!又加了兩種進行比較:co
char* cjson = "{\"code\": \"200\", \"code2\": 200, \"code3\": \"\", \"code4\": }"; Json::Value root; Json::Reader Jreader; Jreader.parse(cjson ,root); if(root["code"].toStyledString().compare("\"200\"\n") == 0) cout<<"ok"<<endl; if(root["code2"].asInt() == 200) cout<<"ok2"<<endl; if(root["code3"].toStyledString().compare("\"\"\n") == 0) cout<<"ok3"<<endl; if(root["code4"].toStyledString().compare("null\n") == 0) cout<<"ok4"<<endl;