現在我這樣一個json字符串:
char* cjson = "{\"code\": \"200\", \"code2\": 200}"; Json::Value root; Json::Reader Jreader; Jreader.parse(cjson ,root);
這個字符串的code:“200” code2:200
現在出現一個問題,我要使用這個code值做判斷
比如我要判斷code是否等於“200”
期間遇到很多問題,最后終於試出兩種code的判斷方式:
if(root["code"].toStyledString().compare("\"200\"\n") == 0) cout<<"ok"<<endl; if(root["code2"].asInt() == 200) cout<<"ok2"<<endl;
第二個的code2的判斷是常規方法
而第一個的code,沒想到 除了兩個雙引號(“”)要加,還需要加一個回車符做判斷(\n)
這個就是jsoncpp庫的問題吧
ops!又加了兩種進行比較:
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;