[原]JSON文字列(値)を判断し、「string」を比較する
4578 ワード
私のようなjson文字列は
この文字列のcode:“200”code 2:200
今問題が発生して、私はこのcode値を使って判断します
例えばcodeが「200」に等しいかどうかを判断します
その間に多くの問題に直面し、最後にやっと2つのcodeの判断方法を試みた.
2つ目のcode 2の判断は従来の方法である
最初のcodeは、2つの二重引用符("")を加える以外に、1つのリターン記号を付けて判断する必要があるとは思わなかった()
これがjsoncppライブラリの問題でしょう
ops!2つ追加して比較します.
char* cjson = "{\"code\": \"200\", \"code2\": 200}";
Json::Value root;
Json::Reader Jreader;
Jreader.parse(cjson ,root);
この文字列のcode:“200”code 2:200
今問題が発生して、私はこのcode値を使って判断します
例えばcodeが「200」に等しいかどうかを判断します
その間に多くの問題に直面し、最後にやっと2つのcodeの判断方法を試みた.
if(root["code"].toStyledString().compare("\"200\"
") == 0)
cout<<"ok"<<endl;
if(root["code2"].asInt() == 200)
cout<<"ok2"<
2つ目のcode 2の判断は従来の方法である
最初のcodeは、2つの二重引用符("")を加える以外に、1つのリターン記号を付けて判断する必要があるとは思わなかった()
これがjsoncppライブラリの問題でしょう
ops!2つ追加して比較します.
char* cjson = "{\"code\": \"200\", \"code2\": 200, \"code3\": \"\", \"code4\": }";
Json::Value root;
Json::Reader Jreader;
Jreader.parse(cjson ,root);
if(root["code"].toStyledString().compare("\"200\"
") == 0)
cout<<"ok"<<endl;
if(root["code2"].asInt() == 200)
cout<<"ok2"<<endl;
if(root["code3"].toStyledString().compare("\"\"
") == 0)
cout<<"ok3"<<endl;
if(root["code4"].toStyledString().compare("null
") == 0)
cout<<"ok4"<