以下に示すコード スニペットを検討してください。
const char* jstring;
jstring = net->Classify(224, 224, imgCUDA, &confidence);
std::cout <<jstring << std::endl;
join_prop = json_tokener_parse( jstring);
printf("join prop is %s\n",json_object_to_json_string(join_prop));
json が作成されて返される Classify への呼び出しが行われます。分類方法の定義は
const char* Classify( uint32_t width, uint32_t height, float* rgb, float* confidence=NULL);
Classify 内のスニペットを以下に示します。
jstring = json_object_to_json_string(properties);
std::string jstring_str(jstring);
json_object_put(properties);
std::cout<< "jstring_str is : "<<jstring_str << std::endl;
return jstring_str.c_str();
出力は、このコード スニペットのさまざまなポイントで画面に出力されます。出力は次のとおりです。
戻り前の jstring_str の Classify 値内
jstring_str is : { "head_gear": [ { "信頼度": 0.000000, "名前": "なし" }, { "信頼度": 1.000000, "名前": "上限" }, { "信頼度": 0.000000, "名前": "ヘルメット" } ] }
ステートメントからの jstring の 2 つの値std::cout <<jstring << std::endl;
{ "head_gear": [ { "confidence": 0.000000, "name": "None" }, { "confidence": 1.000000, "name": "Cap" }, { "confidence": 0.000000, "name": "Helmet" } ] }
- ただし、join_prop のコマンドでは、以下に示すように予期しない出力があるようです。
結合プロップが null です
トークナーが jstring を解析して json に変換することを期待していました。join prop が null になる理由について何か考えがあれば、本当に役に立ちます。この原因を見つけようとして迷っているので、どんな洞察も役に立ちます。
出力は、 https: //jsonformatter.curiousconcept.com/ に基づく有効な json のようです