[原]JSON 字符串(值)做判斷,比較 “string ”


現在我這樣一個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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM