[原]JSON 字符串(值)作判斷,比較 「string 」

如今我這樣一個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;
相關文章
相關標籤/搜索